Protéger une newsletter des spammeurs

Antispam

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 :

/* 
* Script Validation d'email par Matt
* https://www.skyminds.net/ 
* Retourne TRUE si l'adresse est valide et FALSE si incorrecte. 
*/
function SkyVerif($mail) { 
return( eregi ("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$", $mail ) );
} 

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) :

/* 
* Script Antispam-Expiration par Matt
* https://www.skyminds.net/ 
* Les adresses non validées au bout de 3 jours sont supprimées automatiquement 
*/ 
$sql = "DELETE FROM {$newsletter_table} WHERE `opt_in`= 'no' AND `register_date` < DATE_SUB(NOW(), INTERVAL 3 DAY)"; 
$query = mysql_query( $sql ); 

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!

Recherchez-vous un expert WordPress ou WooCommerce sur qui vous pouvez compter? Ne cherchez plus.

Faites confiance à mon expertise »

Articles conseillés :

2 pensées sur “Protéger une newsletter des spammeurs”

  1. Un outil qui circule depuis peu de temps justement c’est l’analyse de mail avec autoresponse. J’ai travaillé déjà pas mal de temps sur le sujet et concernant les outils de spamming tu trouve maintenant des routing d’autovalidation des confirmations (optin).
    1) Le message est parsé
    2) Repère le HASH
    3) Execute le lien
    4) Validation success

    Effectivement ce système à sa limite, puisqu’il peut être attribué sur les domaines attribué par les spammeurs.

    Tu peux tout de même te faire bien flooder. :) Un bon vieux CAPTCHA empêche très largement de ce type de désagrément.

    Reply
  2. Très intéressant loopion, il va falloir que je me penche là-dessus :)

    J’ai laissé de côté le CAPTCHA parce que bien qu’efficace, il a plusieurs incovenients :
    – il est très facile de le by-passer
    – il n’est pas toujours lisible
    – cela prend pas mal de place sur la page et tend à l’enlaidir (je trouve)

    Je viens de trouver une autre astuce qui a quasiment totalement réduit à néant les fausses inscriptions : lors de la création du formulaire, donnez un nom aléatoire au champs texte de l’email. Les spammeurs semblent viser les formulaires qui contiennent des champs email appelés “adresse”, “address” ou “email”. Donnez-lui un nom invraisemblable comme “az02gh” et les inscriptions bugguées cessent immédiatement.

    Reply

Opinions