Transactiv.exe MétaTransétiquette > Lutte anti-spam
Du même auteur  ¦  Proposer un commentaire  ¦  Rechercher  ¦  Plan  ¦  Récent  ¦ 

Lutte anti-spam

Publié le lundi 17 février 2003 à 14:06:45 par Yves Grenier

En développant le site transactiv-exe, je me suis retrouvé confronté à
un problème délicat : comment faire pour que les adresses email apparaissant
sur notre site ne soient pas utilisées à notre insu par des spammers ?

Quand un visiteur laisse un message dans un forum
associé à un article, nous l’incitons à laisser son adresse email.
Je crois utile cette possibilité qui lui est offerte, car d’autres visiteurs peuvent ensuite le contacter directement, sans
passer par le forum public. La manière la plus simple de réaliser cette fonction consiste à placer un lien hypertexte de type "mailto" dans la page HTML.
Malheureusement, ceci rend l’adresse email parfaitement lisible pour les
logiciels de collecte (spambots) qui parcourent les sites web à la recherche
des adresses d’internautes, afin de constituer ces gigantesques listes
utilisées ensuite par le SPAM (voir
l’enquête de la CNIL sur ces courriers emails non sollicités).

Tenir en échec les robots

Le spam me hérisse. J’en suis victime depuis trop longtemps déjà. Voulant
compliquer la vie des spammers, j’ai mis en place une première mesure anti-spam.
Celle-ci reposait sur une astuce trouvée sur le site de
Web-Balzonry. Cette astuce
permet de cacher l’adresse email dans la page HTML d’une manière telle que
le visiteur puisse effectivement utiliser cette adresse, mais que le code source
de la page HTML ne fasse pas apparaître l’adresse en clair.

La méthode consiste à utiliser des instructions javascript, pour découper en
petits morceaux la chaîne de caractères constituant le lien hypertexte "mailto".
La chaîne n’est assemblée qu’au moment de l’affichage par votre butineur.
Ce type de défense anti-spam repose sur le fait que les spambots ne vont
pas exécuter les instructions javascript pour interpréter le résultat
de ces instructions. En théorie, rien ne s’y opposerait, mais ceci les
ralentirait trop, et augmenterait inutilement la complexité de leur
programmation ; inutilement, car ils trouvent déjà bien assez d’adresses à collecter, même sans cette sophistication.

Et puis en répondant au début de ce mois de mars 2003 à un message posté sur la liste de discussion de SPIP, j’ai déclenché une discussion sur la validité de cette solution javascript. Il en ressortait que certains internautes, hostiles à javascript et à son manque de sécurité, désactivaient les scripts : ils ne pourraient donc pas naviguer pleinement sur notre site. Dans le cours de la discussion, Ivan (dont je ne connais que le prénom) m’a indiqué le site suisse de Cuk. Et là, j’ai été emballé. Ce site a développé une parade simple et géniale pour stopper les spambots ou autres robots dans leur quête des adresses email :
faire résoudre par l’internaute une tâche élémentaire (recopier un mot en minuscules) ; un robot est incapable de comprendre ce qu’on lui demande, il est incapable de répondre, et par conséquent, il ne peut pas accéder à l’adresse email demandée. Simple et efficace.

Bien sûr, un jour, les robots seront devenus tellement intelligents que même cette parade ne les arrêtera plus. Mais ce jour est encore si loin...

Les développeurs de Cuk, François Cunéo et Noé Cunéo m’ont autorisé à reproduire leur technique sur notre site. Je les en remercie. Vous pourrez tester cette technique en cliquant sur l’adresse des auteurs de commentaires au bas des articles (par exemple sur mon adresse, dans le commentaire de cet article).

Le code source de la solution que j’ai développée figure dans l’archive adresse.zip jointe à ce texte. Le mode d’emploi de ces fichiers se trouve dans le document anti-spambot.pdf également joint à l’article. Cette version est compatible avec SPIP 1.8.

Mise à jour pour SPIP 2.0 (avril 2009)

Le code précédent ne fonctionne plus sur une version de SPIP à partir de la version 2.0. On trouvera dans l’archive formulaire-sesame.zip jointe à cet article une version qui fonctionne avec les formulaires au nouveau format.

Le fonctionnement repose sur un simple formulaire : FORMULAIRE_SESAME qui sera placé dans une boucle FORUMS et recevra en contexte le critère id_forum.

Le mode d’emploi en est simplifié :
- insérer ajout_mes_fonctions.php dans votre fichier mes_fonctions.php
- placer les fichiers sesame.html et sesame.php dans votre dossier squelette/formulaires
- insérer dans votre code l’appel au formulaire :

<div class='ajax'>
  #FORMULAIRE_SESAME
</div>

Avertissement

Vous êtes autorisés à réutiliser librement les fragments de code que je
publie ci-dessus, comme ceux qui figurent dans les archives ci-jointes (copyright Yves Grenier) ;
cependant, je décline par avance toute responsabilité vis
à vis de toute conséquence que pourrait avoir l’usage que vous pourriez
faire de ce code.



anti-spambot.pdf -

mode d’emploi de l’archive adresse.zip



adresse.zip -

Version pour SPIP 1.8, archive contenant le code source HTML et PHP.



formulaire-sesame.zip -

Version simplifiée pour SPIP 2.0 utilisant ajax et un formulaire au format CVT.


 
Commentaires
Proposer un commentaire