Après avoir pollué nos boîtes mail de scams et de tentatives de phishing – et certains sites de spywares et autres malwares – voici que les spammeurs ont trouvé une nouvelle cible : les newsletters.
Cette tendance semble avoir démarré il y a quelques semaines : la newsletter de SkyMinds.Net subit par exemple une dizaine d’attaques par jour.
Le principe
Les spammeurs semblent vouloir corrompre les bases de données des newsletter en les populant avec des emails erronées (nom d’utilisateur ou domaine inexistant).
Finalement, ils ont repris le principe de wpoison mais contre nos bases de données cette fois !
Le but de cette manoeuvre, à part la surcharge des serveurs mails et des filtres anti-spam, reste relativement obscur. Ils n’ont à priori rien à gagner ainsi.
Se protéger
Si vous gérer votre lettre d’information, vous risquez d’être la cible de ces spammeurs. Il existe plusieurs manières de s’en protéger.
Vérifier l’adresse email avant l’insertion dans la base de données : solution écartée car coûteuse en ressources.
En effet, votre script doit vérifier le nom de domaine puis l’existence de l’utilisateur sur le domaine. La requête peut ne pas aboutir (time-out) et votre possible souscripteur aura quitté votre site devant la lenteur d’exécution.
Valider et insérer l’adresse dans la base dès l’inscription. C’est la solution retenue ici pour son efficacité et sa facilité d’utilisation.
Validation d’adresse email pour une newsletter
Prenons l’exemple de la newsletter de SkyMinds.Net qui utilise plusieurs routines afin de vérifier que la base données est bien peuplée d’adresses emails légitimes.
L’adresse est ajoutée directement à condition qu’elle soit correctement formée. Un mail est alors envoyé au visiteur afin qu’il confirme son inscription. Sans aucun geste de sa part dans les 3 jours, l’adresse est supprimée.
Vérification de la bonne formation de l’adresse email :
function SkyVerif($mail) {
return( eregi ("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$", $mail ) );
}
Code language: PHP (php)
Suppression automatiques des adresses non-validées dans les 3 jours suivant l’inscription.
La table contenant les adresses contient deux champs : opt_in
(statut de l’adresse, égal à no par défaut) et register_date (date d’inscription) :
$sql = "DELETE FROM {$newsletter_table} WHERE `opt_in`= 'no' AND `register_date` < DATE_SUB(NOW(), INTERVAL 3 DAY)";
$query = mysql_query( $sql );
Code language: PHP (php)
Ces routines sont lancées à chaque fois que quelqu’un cherche à s’inscrire sur la newsletter: pas besoin de cron pour garantir l’intégrité des données.
Chaque nouvelle inscription fait le ménage dans la base de données et optimise les tables : suppression automatique des fausses adresses et autres techniques de spam!