Hack anti-spam de Noël pour MT

Je teste avec joie depuis ce midi une version simplifiée d'un hack anti-spam pour Movable Type. Vu le nombre de spams que je reçois en commentaires, vous ne pouvez pas savoir combien ça fait plaisir de voir ce flot putride se tarir instantanément.

Les spammeurs utilisent des scripts automatiques qui visent les scripts de commentaires des systèmes de publication, aussi bien MT que WordPress pour ne citer que ces deux-là. Le truc, pour éviter ça, consiste à rendre difficile pour les spammeurs de trouver l'adresse de votre script. Difficile, parce qu'impossible n'est pas français et si votre script est vraiment impossible à trouver, personne ne viendra jamais laisser de commentaire sur votre blog, et ce n'est pas le but recherché.

Voici comment faire dans MT (c'est trivial à implémenter pour d'autres systèmes) :

1. cherchez dans tous les gabarits qui affichent un formulaire de commentaire (n'oubliez pas ceux de prévisualisation ou d'erreur, car sinon vos efforts ne serviraient à rien) et cherchez la ligne suivante :

<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form" onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">

Dans cette ligne, remplacez le contenu de l'attribut action par une URL invalide, par exemple action="/nospam.html". (Vous pouvez pointer vers un fichier existant pour afficher un message si vous voulez).

N.B. : vérifiez bien la présence de l'attribut name="comments_form" dans le tag <form ...>, il est indispensable au fonctionnement de ce hack. C'est ce qui provoquait l'erreur chez moi, car ce nom était absent des templates preview et error.

2. Toujours dans ces mêmes gabarits, après le tag </form>, placez le code suivant :

<script language='Javascript'>document.comments_form.action = '<$MTCGIPath$>'+'<$MTCommentScript$>'; </script>

3. Renommez votre script de commentaires (mt-comments.cgi) et modifiez le fichier mt.cfg pour refléter le nouveau nom (CommentScript nouveaunomdusscript.cgi). Même si vous aviez déjà pris cette précaution, ça ne mange pas de pain de le modifier à nouveau, surtout si vous recevez du spam.

4. Regénérez les archives individuelles de votre blog (ou les gabarits qui contiennent les formulaires de commentaires).

Voilà.

Il y a deux choses importantes à noter avec ce hack. D'abord il ne fonctionne que si les visiteurs ont activé javascript dans leur navigateur, sinon ils seront envoyés vers l'URL que vous aurez placé dans l'attribut action à l'étape 1. Ensuite, vous pouvez être sûr qu'il ne fonctionnera qu'un temps, le temps que les spammeurs mettront à trouver le chemin de votre script de commentaire.

C'est une course aux armements, boucliers et contre-mesures contre les missiles de l'ennemi et il s'agit de placer la barre un cran plus haut jusqu'à ce qu'ils trouvent le trou dans votre armure. J'ai la faiblesse de croire que les clés sont entre les mains de Google et Yahoo! tant qu'ils ne rendront pas leur moteur de recherche respectif insensibles à ces petits jeux de référencement, il n'y aura pas de solution miracle contre le spam de blogs. Michel Valdrighi, co-développeur de WordPress, n'est pas d'accord, j'attends avec impatience sa solution.

10 commentaires

Laurent, tu fais chi*r avec tes blagues de spammeurs ;-). C'est que depuis quelques semaines j'ai la gâchette facile quand je vois certains mots-clés.

Rire !!!

Le problème des astuces anti-spam, c'est qu'elles ont toujours une durée de vie limitée. Le cercle vicieux... Voir par exemple pour Georges. (Je me suis bien amusé chez lui aussi...).

Chez moi, il n'y a eu que deux hits depuis la reprise. A mon avis, j'ai été encore épargné. Je pense qu'il s'agit de hits manuels.

Ries-donc, hé moqueur ! :)

J'ai vu un URL not Found /fr/Nospam quand j'ai voulu reposter un commentaire où j'avais oublié de mettre mon mail... c'est un bug

Le bug est a priori dans le navigateur (Safari pour moi) qui n'exécute pas un bout de javascript dans les pages rechargées ou mises en cache. Je continue à explorer, je crois que j'ai une idée de ce qui se passe...

Voilà, bug isolé et proprement baygonné. Il me manquait un attribut dans le tag form sur les templates par défaut de MT (comment preview et error). Ca devrait fonctionner maintenant !

Laisser un commentaire

En laissant un commentaire, vous acceptez la politique des commentaires de ce blog.

Archives mensuelles

Notes récentes