Anti Spam: nascondere l’indirizzo email
- 12 maggio 2005 - 15:41
- Web development
Javascript
La maggior parte delle soluzioni contro gli “aspiratori di indirizzi email” utilizzano javascript.
Prima di illustrare le più utilizzate fa vatta una doverosa premessa: se qualche navigante ha disabilitato javascript (magari per ragioni di sicurezza aziendale) oppure il suo browser non lo supporta, non riuscirà a contattarvi. Tenete quindi sempre in considerazione questa possibilità e pensate un modo alternativo per permettere anche a questa categoria di utenti di scrivere al vostro indirizzo email (es. alternativa con NOSCRIPT, utilizzo in accopiata con tecnologia server-side, etc.)
- suddivisione in sottostringhe “disordinate”
- criptazione tramite unicode
- altre criptazioni
L’indirizzo email e/o anche il mailto vengono suddivisi in più stringhe, inserite in una funzione javascript che si occupa di ricomporre l’indirizzo quando viene richiamata nel codice (x)html tramite:
<a href=”javascript:nomefunzione();” title=”Scrivimi…”>tuonome</a>
Esistono moltissime varianti a questa funzione, vi rimando ancora all’articolo un’indirizzo e-mail anti-spam di Html.it per i dettagli implementativi delle varie soluzioni.
Con questa soluzione ogni carattere del nostro indirizzo email è codificato nel formato Unicode; sempre per rendere più difficile l’individuazione agli spambot è buona norma codificare anche il mailto.
Javascript offre due funzioni che permettono di convertire/riconvertire i caratteri nel formato unicode: charCodeAt e fromCharCode.
Sotto l’esempio della funzione precedentemente utilizzata su ilPestifero per decodificare l’indirizzo email:
Se siete pigri/nonavetetempo/voglia esiste uno script che vi trasforma automaticamente l’indirizzo email nel formato unicode (compreso di link mailto).
Altre soluzioni sempre offerte da javascript sono l’utilizzo della funzione unescape, che vi permette di trasformare i caratteri esadecimali passati in una stringa ascii; attenzione: escape non converte tutti i caratteri nel loro formato esadecimale ma solo alcuni caratteri speciali (es. #$%^& ed altri), questo perchè originariamente era stata creata per codificare gli URI.
Ulteriori dettagli su escape/unescape. E’ presente anche una funzione personalizzata che esegue un escape/unescape più completo rispetto a quello offerto da javascript.

