Autor Zpráva
lesiak307
Profil
Zdravím Vás. Jeden návštevník stránky (predpokladám, z tohto fóra) ma upozornil na zabezpečenie mailových adries prispievateľov na web stránke.
JavaScript vôbec neovládam, tento kód som vy_Google_l.

<script language="JavaScript" type="text/javascript">
<!--
        var string1 = "<?php echo $before_at; ?>";
        var string2 = "<?php echo $at; ?>";
        var string3 = "<?php echo $behind_at; ?>";
        var string4 = string1 + string2 + string3;       
        
document.write("<a href=" + "mail" + "to:" + string1 +
                               string2 + string3 + ">" + string4 + "</a>");
         
//-->
</script>


Prosím Vás, je takáto ochrana mailovej adresy proti botom postačujúca?

Vedia roboti čítať JavaScript? Rep. ak sa pozriete na zdrojový kód stránky: www.bunkovce.sk/kniha-navstev/questbook.php, mailové adresy prispievateľov síce sú zobrazené, ale rozkúskovane v tých definíciách var string.
Ďakujem
Misha
Profil *
Rozhodně je to lepší než nic. Většina botů nečte javascript, ale jsou i takoví, co to zvládnou. Ovšem číst se dá i Captcha, takže je to celkem fuk.
Witiko
Profil
lesiak307:
Nahraďte zavináč za obrázek a máte klid i bez těchhle divutvorných php scriptů. :-)
Můj e-mail je jan<img src="zavinac.png" alt="(zavináč)">novak.eu, pište mi jen v případě krajní nutnosti. Nebo ještě lépe - nepište vůbec!
peta
Profil
lesiak307, Misha, Witiko:
At uz zvolis ochranu jakoukoliv, vzdy ten tvar bude stejne pro cele tve stranky a bude verejne pristupny.
Takze az nekdo bude tve maily chtit, pripise soucasti sveho spam bota i prevod tveho tvaru na mailovy tvar.
Navic by tvar mel byt i takovy, aby i bez js a obrazku uzivatel mail dokazal sestavit.

lesiak307:
Cili odpoved na otazku je ano.
Proc to nedas jako pole? Nebo to nepropojis nepouzivanym znakem?
var str = ["<?php echo $before_at; ?>","<?php echo $at; ?>","<?php echo $behind_at; ?>"].join(",");
var str = "<?php echo $before_at.'|'.$at.'|'.$behind_at; ?>".split("|").join("");
var str = "<?php echo $before_at.'|'.$at.'|'.$behind_at; ?>".replace("|","");
var str = "<?php echo $before_at.'|@|'.$behind_at; ?>".replace("|","");


Dalsi tvary:
jmeno.prijmeni (at) seznam.cz
jmeno.prijmeni @ seznam.cz
jmeno.prijmeni @ seznam.cz (!pozor, robot ale i uzivatel tam ty mezery daji a mail je neplatny)
jmeno.prijmeni<img src="at.png" alt="@">seznam.cz
jmeno.prijmeni<img src="?@" alt="@">seznam.cz (index.htm?@ nebo index.php?@)
jmeno.prijmeni<object data="at.png">@</object>seznam.cz (!pozor, roboti tagy odstranuji, obcas)
jmeno.prijmeni<object>@</object>seznam.cz
jmeno.prijmeni<span>@</span>seznam.cz
<a href="mailto:jmeno.prijmeni@seznam.cz">jmeno.prijmeni<u>@</u>seznam.cz</a> (tag U v tagu A ma stejny vzhled a je kratky)
Ty mezery totiz muzes pres CSS snadno odstranit, word-spacing. :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0