« Les clusters Lotus #3 | Main| WAIPChecker pour Beta tests »

Limiter le SPAM Web

0
...
Raz le bol d'avoir en permanence à faire le ménage sur mes blogs et mes sites afin d'éliminer le SPAM, les commentaires de référencement de sites Web (plus ou moins licites d'ailleurs pour certains). Je renfile du coup mon bleu de travail afin de mettre à profit les dernières soirées de l'année pour développer un outil Domino de filtrage des spammeurs.

Le blog domino.stergann.org n'était jusques là protégé que par du code avec pour objectif de ne pas publier automatiquement les commentaires postés par des automates, mais de les enregistrer en attente de modération (utilisation d'une clé de vérification). Mine de rien, ça en fait tout de même une bonne quantité à supprimer chaque semaine, des Spams... Le métier de 'Comment's spammer' doit être très lucratif dans certains pays : j'ai eu à certains moments jusqu'à 12 commentaires par heure.

Il existe pas mal de méthodes de protection :
- la saisie d'un code aléatoire au moment de la validation d'un commentaire
- le contrôle de la fréquence d'envoi de commentaire
- pister la signature du logiciel utilisé par le spammeur (à l'aide variables CGI)
- utiliser une clé dans un cookie
- etc etc

Il existe également des solutions toutes prêtes de blocage de spam. Akismet (lien) en est une. Massimo Nadalin l'a adaptée à Domino dans son template de Blog disponible au téléchargement sur www.OpenNTF.org ( lien : NotePress Domino).Je l'utilise sur mon blog d'astronomie (lien), Ca fonctionne plutôt très bien : tous les messages de Spam reçus sur ce blog ont correctement été taggés et bloqués.

Les inconvénient, selon mon point de vue, sont que :
- il faut tout de même supprimer manuellement les spams reçus. S'ils ne sont pas publiés automatiquement, ils sont enregistrés dans la base NSF
- ce programme ne bloque pas les aspirateurs et les collecteurs de données (préalables aux attaques de spam) qui continuent allègrement à analyser les liens, sites ou adresses, référencés dans mes sites.

Vos e'mails, par exemple, lorsque vous publiez des commentaires ici, ne sont pas visibles. Si par contre vous possédez un compte sur gravatar.com, afin d'adjoindre une image Avatar à votre commentaire, on peut assez facilement remonter votre adresse de messagerie en décodant le Hash correspondant à l'image (ce dernier est obligatoirement visible dans le code source des pages).
Pour être aussi sauvage que les spammeurs, l'idéal serait de ne pas bloquer le Spam au moment où il arrive mais de bloquer les spammeurs en amont, lorsqu'ils procèdent à l'analyse du site.
Donc...
...
L'idée, mais je suis loin d'être le seul à l'avoir eue, est d'utiliser des Listes Noires d'adresses connues et réputées comme adresses d'envoi de Spam et de bloquer partiellement ou totalement l'accès à mes blogs dès lors que l'adresse distante est référencée sur une Liste Noire.

Les serveurs DNS de Black Listing (DNSBL) sont très largement utilisés en messagerie : il en existe un certain nombre orientés vers les protocoles SMTP ou le listage de relais et de proxies ouverts (voir ce comparatif très intéressant sur Wikipedia) .

Il y a beaucoup moins d'outils en ce qui concerne le Spam et les listes noires HTTP.

J'en ai testés quelques uns. Celui qui m'a semblé le plus pertinent et le plus efficace est le Project Honey Pot (lien vers le site).
Il s'agit d'un système DNSBL orienté HTTP requêtable à l'aide d'une clé individuelle que vous pouvez obtenir en vous inscrivant sur leur site.

Le principe est de confronter l'adresse IP entrante des internautes à la base DNSBL.
Le code de réponse du serveur DNS  dnsbl.httpbl.org permet de caractériser l'adresse IP entrante lorsqu'elle est référencée :
- moteur de recherche
- aspirateur de liens
- suspect
- spammeur connu
- pourcentage de risque
- et nombre de jours depuis lequel l'adresse n'a pas été vue comme active.

A picture named M2

Il ne reste plus qu'à programmer la page renvoyée au navigateur distant en fonction du code de réponse du serveur DNS (affichage ou blocage de la page, redirection, masquage de certaines parties, masquage des liens ou des adresses e'mail...).

Lorsqu'une adresse est référencée sur le serveur DNSBL, et en fonction de mes paramétrages de sécurité, je l'enregistre en local afin de ne pas avoir à solliciter le serveur DNS lors des prochaines tentatives d'accès depuis l'adresse concernée. Passé un délai paramétrable, l'adresse est automatiquement purgée de ma Black List locale.

L'application Domino est en cours de développement : de tests et de finalisation pour être plus précis, car les principaux moteurs fonctionnent déjà correctement, ils sont actifs sur ce blog ainsi que sur la plupart de mes sites.
Il ne me reste qu'à peaufiner les interfaces et les options de paramétrage.

Je la publierai ici dans quelques jours... si ça présente un intérêt
:O)

A suivre donc...

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)