Evitate di essere vittima dello spam

di Davide Denicolo

Pubblicato 18 Giugno 2007
Aggiornato 12 Febbraio 2018 20:50

Chi possiede un sito Internet sa quanto sia importante mettere in evidenza un proprio contatto, possibilmente elettronico, per essere raggiungibile.

Purtroppo però gli spammer sono sono sempre in agguato per trovare nuovi indirizzi a cui recapitare la propria spazzatura.

Diverse sono le forme di contrasto a questa problematica; c’è chi sostituisce la ‘@’ con un ‘<at>‘ , chi usa i simboli, chi inserisce un’immagine al posto del testo (ma sappiamo che tale problema è aggirabile come lo sono i Captcha, ecc… ecc…).

Ecco degli esempi:
mario<at>bianchi.com
mario bianchi dot com
marioNOSPAM@bianchi.com

È ovvio che questa forma di protezione funziona fino a un certo punto; realizzando un bot che effettui il parsing su tutte le pagine che si trova a visitare, impiegherà meno di un secondo a ricercare tutte le parole <at> e sostituirli con una chiocciola; lo stesso vale per i tag NOSPAM.

Ho trovato molto utile questo insieme di routine javascript scritte da Diego Doval che potrete aggiungere al vostro sito; esse consentono l’inserimento nella pagina di una stringa codificata, la quale verrà decodificata solo dal vostro browser a runtime e quindi immune da ogni attacco SPAM.

Il sistema di codifica/decodifica però risulta semplice: esso, infatti, si basa su un semplice schema sostitutivo, ovvero a ciascun carattere presente nella variabile BASE associa un carattere corrispondente nella variabile KEY.

L’algoritmo però può essere facilmente personalizzato, basta avere un po’ di conoscenza di javascript.

Questo il codice:


<script>
var key = "BAD4@.56CEGFHIJKLVWdfTUhijXYZbacemngMNOPQRSopqrstuvz018923klwxy7";
var base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@.0123456789";
function generateMailLink(encoded, linkText)
{
document.write("<a hr"+"ef="ma"+"ilto"+":"+decode(encoded)+"">"
+linkText+"</"+"a<");
}
function decode(str)
{
return codec(key, base, str);
}
function codec(from, to, str)
{
var codedResult = "";
for (i = 0; i < str.length; i++) {
current = str.charAt(i);
idx = from.indexOf(current);
nextVal = (idx == -1) ? current : to.charAt(idx);
codedResult += nextVal;
}
return codedResult;
}
</script>

Una volta pronto lo script nella vostra pagina, potrete inserire in seguente tag contenente l’indirizzo codificato:
<script>
generateMailLink("YPXaL8YsKhJPjLieXjSR9jLJ","");
</script>

Lo stesso codice lo potete visualizzare sul sito di Diego Doval dove troverete anche una semplice form che vi genera a partire dal vostro indirizzo email, il corrispondente valore codificato da inserire nella funziona generateMailLink().

Voi che tecnica utilizzate per evitare che lo spam vi riempia la casella?