Per chi sviluppa moduli e FORM di contatti, esiste la necessità di verificare l’immisione di un indirizzo di posta elettronica. Oggi più che mai, con demoni pronti ad eseguire SPAM ovunque, è bene tutelarsi da “furbetti” pronti a sfruttare i moduli HTML per inviare mail illegali o eseguire hack per SPAM e quant’altro.
La prima tutela può arrivare da Javascript, verificando – ad esempio – il campo email di un FORM prima di procedere con l’invio. Diciamo sin da subito che questo risulta un mero pagliativo, relativamente a sistemi di SPAM (o hacker) evoluti. Tuttavia è sempre meglio inserire qualche semplice controllo – preliminare – quantomeno per evitare distrazioni da parte dell’utente – corretto.
Prima di tutto un consiglio semplice: se chiedete il nome, oltre la mail, limitate la lunghezza in caratteri e controllate che al suo interno non sia presente il carattere AT (@). Questo viene spesso usato per inviare – anche in bcc – mail indesiderate. Un esempio eclatante è l’uso della funzione mail() sotto PHP. Il primo parametro di questo funzione è l’indirizzo del destinatario, nella forma semplice:
1 |
oppure nella forma estesa
1 |
Alcuni sviluppatori usano proprio la forma estesa, inserendo quindi il nome del destinatario chiesto nel FORM, ottenendo una sintassi simile a questa:
1 |
Alcuni furbacchioni, quindi, postano in $name una stringa simile a questa: ind1@dom1.com, ind2@dom2.com, … Così facendo la funzione mail() si trova costretta ad inviare posta a tutti quegli indirizzi, causando non pochi problemi (vedi code sul server). Morale, il nome NON deve essere un indirizzo di posta elettronica!
Verificare invece la correttezza di una email è piuttosto facile, quantomeno a livello sintattico:
1 2 3 4 5 | var r = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; if( r.test( email ) ) alert("e-mail corretta!"); else alert("e-mail NON corretta!"); |
Si possono poi aggiungere tutta una serie di controlli aggiuntivi personalizzati come: liste di esclusione o inclusione di domini, liste di esclusioni di username, ecc…
Un controllo estremamente più efficace, invece, può essere effettuato da PHP. Oltre a svolgere un controllo sintattico, utilizzando sempre le regular expression, si può sfruttare la funzione checkdnsrr() per eseguire un controllo sui records DNS e verificare, quindi, se il dominio indicato esista davvero!
Questo tipo di controllo – ovviamente – non fornisce una certezza del 100% sull’autenticità della mail, ma quantomeno screma tutta una serie di domini impossibili utilizzati esclusivamente allo scopo di intasare la – nostra – rete!
Insomma, con un controllo Javascript più uno PHP e un po’ di attenzione, possiamo almeno limitare i danni provocati dai simpaticoni che potrebbero codificare ben altro – qualcosina di più sottile e divertente – invece dei soliti SPAM (che ormai, diciamolo pure, hanno stancato e risultano davvero obsoleti).








7
[...] il post Validare email in Javascript e PHP, ecco una simpatica classe Javascript in grado di verificare e controllare indirizzi di posta [...]
[...] Eseguire una serie di controlli sui campi email e password (vedi anche Validare email in Javascript e PHP) [...]