Point de départ : comment fonctionnent les spammeurs ? Le fait que les billets spammés soient toujours les mêmes permet de déduire qu’ils scannent les urls et qu’une fois qu’ils en tiennent une, ils arrosent dessus quotidiennement. Il suffit donc de fournir pour chaque billet une URL de trackback jetable basée sur une date de péremption. Utilisable sans contrainte pour faire un trackback légitime, elle devient invalide peu de temps après. Elle est donc inutilisable par nos spammeurs. Le tout saupoudré d’encryptage afin qu’il leur soit impossible de constituer eux même une URL valide. J’ai donc mis tout cela en musique la semaine dernière. Maintenant j’ai des URLs de trackback qui ont de la forme suivante :

http://archiblog.stratic.fr/blog/tb.php?id=177&chk=iwg2wp ( chk=iwg2wp est la fameuse date de péremption encryptée),

Et même pas peur, je peux sans crainte mettre un lien sur cette URL de trackback. Dans le quart d’heure qui suit sa publication, elle deviendra de toute façon inutilisable et retournera une erreur.

En un peu moins de 7 jours, à elle seule, cette petite astuce a stoppé 1019 trackbacks de spam sur Archiblog pour un coût zéro aussi bien pour mon hébergeur que pour moi-même! Pendant cette période un seul trackback de spammeur est passé mais il a bien sûr été capturé par Spamplemousse. Et encore, il ne s’agissait pas d’un message de spam mais plutôt d’un sondage fait par un nouveau spammeur sur l’URL du billet car le corps du message de trackback était désespérément vide. Seule l’adresse IP de l’émetteur permettait de penser qu’il s’agissait d’une tentative de spam car elle était en liste noire.

Devant le succès de l’opération et puisque je suis partageur, après avoir enlevé le compteur (qui comptait surtout mon autosatisfaction), j’ai donc décidé aujourd’hui d’en faire un petit plugin expérimental vite fait sur le gaz, nommé Spamtimeout que je vous invite à tester :

Une fois le plugin installé, l’utilitaire de configuration du plugin indique la marche à suivre pour l’activer et le personnaliser. Attention, il faut mettre les mains dans le cambouis et aller modifier les fichiers tb.php de Dotclear et post.php de votre thème pour en tirer parti. Ces manips relativement simples restent tout de même réservées à un public averti.

Je qualifie ce plugin d’expérimental, car son seul but est de permettre au plus grand nombre de tester la solution. Si elle se révèle satisfaisante pour tous, l’idéal serait bien sûr à terme d’intégrer cette solution dans Spamplemousse ou même dans Dotclear car les plugins, entre celui qui fait le café et celui qui ajoute le sucre, ça commence à être un peu la jungle sous Dotclear.

Spamtimeout ne se suffit pas à lui-même, il est complémentaire de Spamplemousse (ou de SpamClear). En effet, il ne protège pas nécessairement de la première tentative si elle est réalisée très peu de temps après le scan ou de celles faites manuellement (mais là c’est un plaisir, car on sait que le spammeur passe plus de temps pour faire son trackback que nous n’en passons à le modérer :-) ).

Voilà, avec ça, les spammeurs n’ont plus qu’à scanner chaque billet à chaque fois pour retrouver une URL valide. Ce que je ne pense pas qu’ils soient prêt à faire car là le rendement serait nettement moins bon. Mais, même dans ce cas, on pourrait alors toujours faire quelque chose en ajoutant par exemple un peu de CSS magique pour compliquer le jeu.

Merci de me faire part de vos commentaires.

Edit: Il semble que la fonction de découverte automatique des URLs de trackback soit fortement appréciée (quand elle fonctionne...). Je viens donc d'ajouter son support dans la version 0.6 et vous invite à la tester. Ca expose un peu plus mais au vu de la façon dont fonctionnent les spammeurs, ça devrait continuer à arrêter l'essentiel des flux (je croise les doigts).