Rejtőzz el a spambotok elől!
Az e-mail címeket manapság már nem szokás a honlapokon a hagyományos, kattintható formában megjeleníteni. Helyette legtöbbször képként vagy széttagolt formában (Például: susnya [kukac] gmail [pont] com) találkozhatunk velük, így egy levél írásakor utóbbit még viszonylag könnyen átmásoljuk a címzettek közé, de az előzőt már körülményesebben. Én személy szerint mindkét megoldást utálom, és kifejezetten idegesít, ha nem tudok két kattintással, kijelölés nélkül másolni egy e-mail címet. Ezért kifejlesztettem az alábbi scriptet, melynek a MysticalMail nevet adtam.
Természetesen az általam kidolgozott megoldás a végtelenségig bonyolítható, aminek csak addig van értelme, amíg a botok nem olvassák a JavaScript kimeneteket. A komplikálásra mindenképpen buzdítanám a progarmozókat, mert elsősorban úgy lehet csak sikeres a MysticalMail, ha mindig egy kicsit más elképzelés alapján “titkosítja” a címeket. Gondoljatok csak a polimorf vírusok sikerének kulcsára, amit már a nevük is elárul! 😉
A Google keresőjében már teszteltem a kódomat, amint átment a kereső, mert az adott e-mail címre nem jelenítette meg azt a találatot, amit “kellett volna”, és a tárolt változatban is csak a <noscript></noscript>
tartalma volt olvasható. A spambotok többsége hasonlóan figyelmen kívül hagyja vagy képtelen kezelni a JavaScriptek által generált kimenetet, így a MysticalMail segítségével megjelenített címek nem esnek ezok áldozatául.
Aki nem jártas a programozásban, annak csak elég beírni az alábbi “E-Mail” mezőbe a titkosítani kívánt e-mail címet, és az űrlap kiadja a beágyazandó scripteket. A hosszabb kódot a <head></head>
tagek, a rövidebbet pedig szövegközben bárhová, de a <body></body>
tagek közé kell elhelyezni:
Az érdeklődők számára pedig következzen a generálásért felelős kód űrlapsablonnal együtt:
JavaScript Kód:
function CreateMysticalMail (Mail) {
var Chars = escape (Mail).split ('');
for (Index = 0; Index < Chars.length; Index++) {
Chars[Index] = Chars[Index].charCodeAt (0);
}
// A "g" felelős azért, hogy az összes cserét végrehajtsa, és ne álljon le az első után.
return String (Chars.valueOf ()).replace(/,/g, ', ');
}
function CreateCode () {
if (document.MysticalMail.Mail.value != '') {
var JavaScript = '<script type="text\/javascript">\n';
JavaScript += 'function PrintMysticalMail () {\n';
JavaScript += '\tvar Mail = unescape (String.fromCharCode ('+CreateMysticalMail (document.MysticalMail.Mail.value)+'));\n';
JavaScript += '\tdocument.write (Mail.link (\'mailto:\'+Mail));\n';
JavaScript += '}\n';
JavaScript += '<\/script>';
document.getElementById('JavaScript').innerHTML = JavaScript;
document.getElementById('HTML').innerHTML = '<script type="text\/javascript">PrintMysticalMail ();<\/script>';
}
else {
document.getElementById('JavaScript').innerHTML = '';
document.getElementById('HTML').innerHTML = '';
}
}
HTML Kód:
<form name="MysticalMail" id="MysticalMail">
<h5>E-Mail:</h5>
<input type="text" name="Mail" id="Mail" onkeyup="CreateCode ();" onchange="CreateCode ();" onfocus="CreateCode ();" style="width: 480px;" />
<h5>JavaScript Kód:</h5>
<textarea style="width: 480px; height: 96px;" name="JavaScript" id="JavaScript" readonly="readonly"></textarea>
<h5>HTML Kód:</h5>
<textarea style="width: 480px; height: 96px;" name="HTML" id="HTML" readonly="readonly"></textarea>
</form>
A MysticalMail-hez hasonló megoldást a pszfonline.hu-n találhattok.
Írta: Johnny (2010/02/12 14:14) • »»
első!
Ha, ilyen még sose volt, hogy egy postnál elsőzök, soha többé nem is lesz, de egyszer ki akartam próbálni 🙂
Amúgy ez tök jó, a szögletes zárójeles megoldás szerinem is k***a idegesítő
Írta: Az e-mail cím elrejtése.. « Tapodi Mihály tárhelye (2011/03/29 02:55) • »»
[…] Na erre a problémára találták ki a cím javascript-tel való elrejtését. Ezt ugyanis a “robotok” még nem tudják kezelni, egyenlőre. Persze elviekben nemsokára ezt a tartalmat is kezelni tudják a botok, de addig is használjuk ki, ha van rá lehetőségünk. Itt erről bővebben olvashatsz és megtalálod a javascript-es generátort: http://susnya.hu/rejtozz-el-a-spambotok-elol/567/ […]