Form email da proteggere. Lo spam è diventato il pizzo che tutti noi dobbiamo pagare. Un rischio anche per i nostri dati.
I form “aperti” per contattare ad esempio via email l’intestatario di un sito sono di norma tempestati da spam.
L’utilizzo delle espressioni regolari può diminuire lo spam proveniente da questi form.
L’arma per difendersi dall’Email Injection è quella delle espressioni regolari. Inserendo la seguente riga nello script form.php faremo in modo di bloccare tutte le email non valide che possono generare spam.
[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-\.]?[a-z0-9])+\.[a-z]{2,4}. Tramite questa espressione regolare cerchiamo di bloccare in particolare l’aggiunta di header che si possono aggiungere con %0A, ma anche email del tipo b@a.i oppure kk@.com ecc…Occorre quindi inserire un controllo nel file form.php in modo da effettuare un confronto tra tutte le combinazioni della regular expression e la stringa da controllare (es. l’email in questo caso.) Il controllo viene eseguito tramite la funzione eregi(regular expression, email). Quindi utilizzando un tipico schema if … else possiamo fare in modo che se l’email è validata la funzione mail ( ) verrà attivata altrimenti verrà restituito il messaggio “errore inserimento mail”.Questo lo script completo di un form in php protetto da Email Injection
<?php
$nome=$_POST[“nome”];
$email=$_POST[“email”];
$destinatario=”info@internet-news.it”;
$mittente=”From: $email”;
$oggetto=”Nuova iscrizione alla Newsletter di Internet News”;
$messaggio=”$nome si Х iscritto alla newsletter e ha comunicato questa e-mail $email”;
if (eregi(’^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-\.]?[a-z0-9])+\.[a-z]{2,4}$’,$email)) {
mail($destinatario,$oggetto,$messaggio,$mittente);
echo “Grazie per esserti iscritto alla newsletter di Internet-News”;
} else {
echo “Errore inserimento email”; ?>
Nessun Commento