E-mail cím megjelenítése spam ellen

E-mail cím megjelenítése spam ellen
2009-06-01T12:17:40+02:00
2009-06-02T09:44:03+02:00
2022-11-13T20:10:34+01:00
Reiben
Sziasztok,

Az lenne a kérdésem, hogyan lehetne biztonságosan megjeleníteni úgy e-mail és msn címeket, hogy spam ellen védve legyen és mégis megjelenítsem.

A jelenlegi védelmem:

// javascript function spamkill(x) { x.href=x.href.replace(/_kukac_/, "@"); x.href=x.href.replace(/_pont_/g, "."); return true; } function stat(x, vis) { if (vis) { window.status=x.href.replace(/_kukac_/, "@"); window.status=window.status.replace(/_pont_/g, "."); window.status=window.status.replace(/mailto:/, ""); } else { window.status=""; } } ----------------------------- // php ... function code_mail($email) { if(preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $email)) { $email = str_replace('.', '_pont_', $email); $email = str_replace('@', '_kukac_', $email); return $email; } } // e-mail megjelenítés if ($adat['emailAddressPublic'] == 'igen') echo '<a href="mailto:'.code_mail($adat['emailAddress']).'" onclick="spamkill(this)" onmouseover="stat(this, true); return true;" onmouseout="stat(this, false);">Levél küldése</a>'; // msn megjelenítés if ($adat['MSNPublic'] == 'igen') echo '<a href="msnim:add?contact='.$adat['MSN'].'">Partner felvétel</a>';

Tehát azt szeretném megoldani, hogy kiírhassam az <a> tagek közé az e-mail és msn címeket, viszont ekkor már sebezhető a robotok ellen. Van erre valami megoldás?

Köszi előre is!
Mutasd a teljes hozzászólást!
Válogass:
Hide email address in source code
:D
A legegyszerűbeket persze ne is nézd (pl. javascriptben "látható" az email, onnan töltöd be, mert azokat a mai bot-ok már simán kiszedik)
A kódolós, képes megoldások a jók.


jquery, prototype és társai - framework
Végülis javascript nyelven írt funkciók könyvtára (általában crossbrowser).
(olyan mintha Te itt a spam_kill és stat funkciódat beleraknád egy file-ba és elneveznéd eGOist framework-nek. :D
Ha a böngészők egységesen követnék a szabványokat akkor szinte nem is lenne rájuk szükség.

Saját véleményem szerint ha már programozol vagy meg akarod tanulni akkor ne használd egyelőre.
Főleg ne ilyen icipici munkához. Felesleges egy egész framework-t betölteni hozzá a böngészőnek.
Mutasd a teljes hozzászólást!

  • Ismered a jquery-t? Lényegesen egyszerűbb lenne a használata...
    Mutasd a teljes hozzászólást!
  • És ezzel mi a gond?
    Az hogy "gabor_kukac_momail_pont_hu"-ként jelenik meg?
    Mutasd a teljes hozzászólást!
  • Nem ismerem még, de utána nézek... Egyébként mire használható?
    Mutasd a teljes hozzászólást!
  • Akkor pontosítok.
    E-mail:
    Mivel így van megjelenítve: <a href="mailto:...>levél küldése</a>
    , ehelyett szeretném azt hogy <a href...>akarmi@akarmi.com</a>

    MSN:
    <a href="msnim:add...>partner felvétele</a> Ez az msn-n való felvétel is csak IE-n működik. Tehát itt is valami ilyesmit szeretnék, hogy:
    <a href...>akarmi@akarmi.com</a>

    Viszont ez így nem okés, mert a robotok "ellophatják".
    Mutasd a teljes hozzászólást!
  • minden linkbe teszel egy class-t vagy id-t vagy bánomisén, ami ilyen
    aztán prototype-ban (js) van olyan hogy
    getElementsByClassName('sajátclassneve')
    ez egy tömböt ad vissza az adott a tag-ekkel
    végiglépkedsz rajta for ciklussal és
    most jön a triki:
    átirod midnegyik nek a href attributumát meg a textNode-ját arra amire akarod. a legegyszerűbb ha base64-el kódolva küldöd le kliens oldalra, és js-el feloldod, de saját kódert is csináljatsz
    ekkor az oldaban ilyesmi lesz:
    <a href="BASE64STRING">BASE64STRING</a>
    és js lefutása után már a mailto: meg msnim:add bigyó lesz benne
    Mutasd a teljes hozzászólást!
  • Válogass:
    Hide email address in source code
    :D
    A legegyszerűbeket persze ne is nézd (pl. javascriptben "látható" az email, onnan töltöd be, mert azokat a mai bot-ok már simán kiszedik)
    A kódolós, képes megoldások a jók.


    jquery, prototype és társai - framework
    Végülis javascript nyelven írt funkciók könyvtára (általában crossbrowser).
    (olyan mintha Te itt a spam_kill és stat funkciódat beleraknád egy file-ba és elneveznéd eGOist framework-nek. :D
    Ha a böngészők egységesen követnék a szabványokat akkor szinte nem is lenne rájuk szükség.

    Saját véleményem szerint ha már programozol vagy meg akarod tanulni akkor ne használd egyelőre.
    Főleg ne ilyen icipici munkához. Felesleges egy egész framework-t betölteni hozzá a böngészőnek.
    Mutasd a teljes hozzászólást!
  • A 13. hozzászólás HEX encoding nem rossz megoldás és valóban a képes dolog sem. Átgondolom és megvalósítom...

    Kösz szépen!
    Mutasd a teljes hozzászólást!
  • Akit érdekel a következőképpen oldottam meg a spam elleni védelmet.

    $htmlspecials = array('a'=>'&#97;','á'=>'&#225;','b'=>'&#98;','c'=>'&#99;','d'=>'&#100;','e'=>'&#101;','é'=>'&#233;','f'=>'&#102;','g'=>'&#103;','h'=>'&#104;','i'=>'&#105;','í'=>'&#237;','j'=>'&#106;','k'=>'&#107;','l'=>'&#108;','m'=>'&#109;','n'=>'&#110;','o'=>'&#111;','ó'=>'&#243;','ö'=>'&#246;','ő'=>'ő','p'=>'&#112;','q'=>'&#113;','r'=>'&#114;','s'=>'&#115;','t'=>'&#116;','u'=>'&#117;','ú'=>'&#250;','ü'=>'&#252;','ű'=>'ű','v'=>'&#118;','w'=>'&#119;','x'=>'&#120;','y'=>'&#121;','z'=>'&#122;','A'=>'&#65;','Á'=>'&#193;','B'=>'&#66;','C'=>'&#67;','D'=>'&#68;','E'=>'&#69;','É'=>'&#201;','F'=>'&#70;','G'=>'&#71;','H'=>'&#72;','I'=>'&#73;','Í'=>'&#205;','J'=>'&#74;','K'=>'&#75;','L'=>'&#76;','M'=>'&#77;','N'=>'&#78;','O'=>'&#79;','Ó'=>'&#211;','Ö'=>'&#214;','Ő'=>'Ő','P'=>'&#80;','Q'=>'&#81;','R'=>'&#82;','S'=>'&#83;','T'=>'&#84;','U'=>'&#85;','Ú'=>'&#218;,'Ü'=>'&#220;','Ű'=>'Ű','V'=>'&#86;','W'=>'&#87;','X'=>'&#88;','Y'=>'&#89;','Z'=>'&#90;','0'=>'&#48;','1'=>'&#49;','2'=>'&#50;','3'=>'&#51;','4'=>'&#52;','5'=>'&#53;','6'=>'&#54;','7'=>'&#55;','8'=>'&#56;','9'=>'&#57;',' '=>'&#32;','!'=>'&#33;','"'=>'&#34;','#'=>'&#35;','$'=>'&#36;','%'=>'&#37;','&'=>'&#38;','\''=>'&#39;','('=>'&#40;',')'=>'&#41;','*'=>'&#42;','+'=>'&#43;',','=>'&#44;','-'=>'&#45;','.'=>'&#46;','/'=>'&#47;',':'=>'&#58;',';'=>'&#59;','<'=>'&#60;','='=>'&#61;','>'=>'&#62;','?'=>'&#63;','@'=>'&#64;','['=>'&#91;','\\'=>'&#92;',']'=>'&#93;','^'=>'&#94;','_'=>'&#95;','`'=>'&#96;','{'=>'&#123;','|'=>'&#124;','}'=>'&#125;','~'=>'&#126;','°'=>'&#176;','´'=>'&#180;','§'=>'&#167;','÷'=>'&#247;','×'=>'&#215;','ß'=>'&#223;'); function string2HTML($string) { global $htmlspecials; $kimenet = ""; $hossz = strlen($string); for($i=0; $i < $hossz; $i++) { $kimenet .= $htmlspecials[$string[$i]]; } return $kimenet; } -------------------------------------------- $htmlemail = string2HTML($adat['emailAddress']); // mysql-ből // kukac és domain név végződések kép cseréje function code_mail($email) { $email = str_replace('&#46;&#104;&#117;', '<img src="images/hu.jpg"/>', $email); // .hu $email = str_replace('&#46;&#72;&#85;', '<img src="images/nhu.jpg"/>', $email); // .HU // .com, .eu, .net stb végződések elkészítése $email = str_replace('&#64;', '<img src="images/kukac.jpg"/>', $email); return $email; } if ($adat['emailAddressPublic'] == 'igen') // mysql-ből echo '<font style="color:#517BA6;font-family:Tw Cen MT;">' . code_mail($htmlemail) . '</font>';
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd