17 décembre 2004
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.
Publié le 17 décembre 2004 dans WeblogueSuper billet !
;-)
Posté par Buy cheap generic ViaGra le 17 décembre 2004 à 18h43 - #
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.
Posté par François le 17 décembre 2004 à 18h46 - #
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...).
Posté par Buy cheap generic ViaGra le 17 décembre 2004 à 18h55 - #
Il y a un article là dessus sur le site de Netcraft :
http://news.netcraft.com/
Posté par Jean Lespinasse le 18 décembre 2004 à 10h15 - #
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 ! :)
Posté par Georges le 22 décembre 2004 à 01h45 - #
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
Posté par Cyril Z. le 22 décembre 2004 à 17h57 - #
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...
Posté par François le 22 décembre 2004 à 18h16 - #
test
Posté par François le 22 décembre 2004 à 18h29 - #
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 !
Posté par François le 22 décembre 2004 à 18h35 - #
URL de TrackBack pour ce billet:
http://www.padawan.info/cgi-bin/mt/mt-tb.cgi/1143

