Probabilmente state leggendo questo articolo dopo aver controllato la vostra
casella di posta elettronica. Quasi certamente, allora, vi siete sorbiti la dose
quotidiana di spam misto a virus variamente assortiti. Un bell'intruglio, non
c'è che dire. Sempre più fastidioso, sempre più invadente
e incontrollabile. Soluzioni? Pozioni magiche? Non ne abbiamo, ma qualche precauzione
possiamo consigliarla.
Partiremo da un dato di fatto inconfutabile: avere un indirizzo e-mail pubblico,
esposto su un sito, equivale a consegnare agli spammer le chiavi di casa. Non
c'è scampo. A quel punto, non si può che ricorrere ad un software
anti-spam o a filtri da configurare sul programma di gestione della posta, essendo
comunque consapevoli dei limiti attuali di queste tecnologie, del rischio che
mail legittime finiscano tra quelle da cestinare e delle contromisure sempre più
insidiose adottate dagli spammer. Perdonateci la banalità, ma mai come
in questo caso è più efficace prevenire che (tentare di) curare.
E per prevenire è utile ricordare come gli infestatori della nostra privacy
ottengono gli indirizzi da bersagliare.
Sparare nel mucchio
Un primo sistema è quello di 'sparare nel mucchio'. Si parte da un dominio,
magari quello di un grosso provider, e si creano indirizzi casuali o che corrispondono
a schemi comuni. Personalmente, ho notato questa tendenza nello spam 'nazionale'.
Se avete, ad esempio, un indirizzo del tipo antonio45@dominio.com, state
certi che nel campo CC troverete spesso, tra i destinatari, anche antonio46@dominio.com,
antonio67@dominio.com e così via. Variazioni sul tema, si direbbe,
generate da un computer. Non crederete che lorsignori vadano a controllare l'esistenza
di tutti quegli indirizzi! Sparare nel mucchio, dunque.
Liste di indirizzi
Una secondo sistema è quello di acquisire liste di indirizzi da soggetti
che li hanno raccolti per poi rivenderli (proditoriamente). In questo caso l'unica
contromisura è leggere con attenzione le disposizioni in tema di privacy
prima di fornire i dati e agire di conseguenza, denunciando eventualmente ogni
violazione riscontrata. Su siti che non forniscono garanzie è opportuno,
al limite, servirsi di indirizzi creati ad hoc (è anche un sistema per
verificare l'uso che ne verrà fatto: se lo ho dato solo a Tizio, perché
mi arrivano mail anche da Caio e Sempronio?).
Mailing-list, gruppi, Web
Una miniera è rappresentata, ovviamente, da quei sistemi (gruppi o mailing-list)
che proprio sull'e-mail si fondano. Eppure, non è lì che gli spammer
vanno a raccattare il grosso degli indirizzi. La fonte più prolifica è
il Web. Ed è di questo che ci occuperemo in dettaglio: proteggere l'indirizzo
e-mail che esponiamo su un sito.
Per scandagliare il Web alla ricerca di indirizzi, gli spammer utilizzano particolari
programmi chiamati spambot. Il loro funzionamento è simile a quello
degli spider usati dai motori di ricerca. Solo che uno spambot è creato
per compiere al meglio una sola missione: estrarre dalle pagine tutti gli indirizzi
che può. Di software in grado di compiere questa operazione ce ne sono
diversi, da quelli fatti in casa a quelli commerciali (e spesso molto costosi).
Più precisamente, uno spambot fruga nel codice HTML della pagina alla
ricerca di link del tipo mailto:utente@dominio.com.
Bello il mailto:, vero? Faccio il mio
sito, inserisco una lista di contatti con tanto di e-mail, la pubblico. A quel
punto voglio rendere comoda la vita dei miei visitatori (o clienti): rendo gli
indirizzi linkabili con il mailto:, basta
un click e si apre il programma di e-mail, con un nuovo messaggio pronto per essere
inviato. Così facendo, però, ho reso comoda la vita anche agli spammer.
Potrei fare a meno di rendere linkabile l'indirizzo. Invece che così:
<a href="mailto:utente@dominio.com">utente@dominio.com</a>
potrei fare così:
utente@dominio.com
o addirittura così:
utente[at]NOSPAMdominio.com
Però.... Nei casi 2 e 3 costringerò chi vuole scrivermi a fare
un copia e incolla dell'indirizzo e ad aprire il client di mail. Senza dire che nel terzo caso, lo costringerei (se arriva a capirlo)
a cancellare le parti dell'indirizzo camuffate. A questo punto l'obiettivo è
chiaro: proteggere l'indirizzo senza rinunciare al mailto:. Di seguito
presentiamo alcune tra le tecniche possibili.
Usare Javascript
Primo metodo. Lasciamo che sia Javascript a scrivere l'indirizzo. Nel punto
della pagina in cui desideriamo inserire l'indirizzo e-mail, è sufficiente
utilizzare questo codice:
<script language=javascript>
<!--
var nomeutente = "utente";
var dominio = "domain.com";
var testo = "Scrivimi";
document.write("<a href=" + "mail" + "to:" +
nomeutente +
"@" + dominio + ">" + testo + "</a>")
//-->
</script>
Per adattarlo alla proprie esigenze basterà personalizzare i valori
delle 3 variabili nomeutente, dominio
e testo. Quest'ultima rappresenta il
testo da cliccare che comparirà nella pagina. Ecco nell'esempio
il risultato che otteniamo (la pagina contiene le prove di ciascuna delle tecniche
che andremo ad esaminare).
Come si vede, lo script non fa altro che tentare di confondere lo spambot,
'spezzando' in più parti la stringa (l'indirizzo) e l'espressione mailto.
Tutto bene? Quasi. Questo metodo non funziona su browser che non supportano Javascript
o che lo abbiano disabilitato.
Una variante di questo script molto diffuso in rete è quella offerta
da Sun
Star Media. In questo caso, inseriamo lo script nella sezione <head>
della pagina e poi richiamiamo la funzione passando i parametri giusti. Questo
lo script:
<script language="JavaScript"><!--
function DisplayMail(Server, Login, Display){
if ((Display.length == 0) || (Display.indexOf('@')+1)) {
document.write("<a href=" + "'mai" + "lto:" +
Login + "@" + Server + "'>" + Login + "@" + Server
+ "</a>"); }
else {
document.write("<a href=" + "'mai" + "lto:" +
Login + "@" + Server + "'>" + Display + "</a>");
}
}
//-->
</script>
Nel punto dove vogliamo collocare l'indirizzo, basterà usare una semplice
riga di codice:
<script language="javascript">DisplayMail('dominio.com', 'utente',
'');</script>
Lasciando vuota, come in questo caso, la terza variabile, visualizzeremo nella
pagina l'indirizzo. Altrimenti, possiamo creare un testo ad hoc, così:
<script language="javascript">DisplayMail('dominio.com', 'utente',
'Scrivimi');</script>
Codificare l'indirizzo
Un altro approccio è quello di codificare il link mailto:
con l'indirizzo, sostituendo il testo con i valori delle corrispondenti entità
HTML. L'indirizzo fittizio che stiamo usando (utente@dominio.com) diventa
dunque:
utente@dom
inio.com
Essendo entità, il browser provvederà a visualizzarle correttamente
al momento di caricare la pagina, ma lo spambot le vedrà comunque in questa
forma, per lui inutilizzabile.
Il guaio (apparente) è che scrivere un link di questo tipo manualmente
può diventare un incubo. Niente paura. Esistono diversi servizi online
che fanno il lavoro sporco per noi. Il primo è Email
Encoder. Basterà inserire l'indirizzo da codificare e cliccare sul
pulsante Encode. Nell'area di testo ci ritroveremo il codice da copiare
e incollare. Ma dove? Nel link mailto:,
ovviamente:
<a href="mailto:utente@
dominio
.com">Scrivimi</a>
Un servizio simile è offerto da SiteUp Networks. In questo caso il codice
completo (link + codifica) arriva via mail. Se volete testare, quindi, dovrete
fornire un indirizzo valido.
I metodi basati sulla codifica hanno anche loro un tallone d'Achille. Uno potrebbe
creare uno spambot in grado di decodificare le entità. Niente problemi
di supporto, invece, poiché il link non è prodotto da uno script.
Hiveware Enkoder Form
Form Enkoder, il tool creato da Dan Banjamin è senza dubbio quello
che offre la maggiore protezione. È basato su una combinazione di Javascript
e codifica dei caratteri, ma molto più complessa di quella basata su semplici
entità. Il codice generato è piuttosto lungo e perciò non
lo riportiamo. Provare è comunque estremamente semplice.
Nel Basic Form vanno inseriti nell'ordine:
- l'indirizzo da codificare;
- il testo che comparirà nella pagina;
- il testo per l'attributo title (compare
come tooltip passandoci sopra con il mouse); - eventualmente, l'oggetto predefinito della mail.
Un click su Encode the Address ed è fatta. Copiare e incollare
il risultato nel punto dove vogliamo far comparire l'indirizzo e-mail.
Dopo aver visto i metodi più comuni di protezione dell'indirizzo, c'è
da chiedersi se sono efficaci. Non ho statistiche personali da offrire, ma c'è
uno studio
molto interessante del Center for Democracy & Technology. È
pieno di consigli e strategie, ma soprattutto contiene i risultati di diversi
test svolti. Questo
grafico è quello che più ci interessa. Gli indirizzi e-mail
creati per i test e codificati con i metodi visti qui sopra non hanno ricevuto
nessun messaggio di spam. Altrettanto è avvenuto per quelli cosiddetti
human readable (del tipo utente[at]NOSPAMdominio.com), ma abbiamo
visto prima le controindicazioni in termini di usabilità di questa scelta.
Questo è tutto. Le soluzioni che abbiamo presentato sono solo quelle
di più facile implementazione, tutte lato client, per intenderci.
Tecniche di redirect e riscrittura degli URL sul lato server possono consentire
risultati altrettanto validi, ma sono fuori dallo scopo di questo articolo.