Combattre le 'comment spam' sur JHLP, premier acte

Sam 08 janvier 2005

Comme indiqué précédemment, j'ai été victime de mon premier comment spam dernièrement.
Voici ce que j'ai mis en oeuvre.

Note : tout ceci est en bêta-test, risque d'y avoir des bugs...

C'est quoi le comment spam, d'abord ?

Le comment spam est une technique destinée à pourrir les commentaires d'un blog d'une suite d'adresses de sites à caractère commerciaux, des casinos, des sites pornos, etc.
L'objectif est de faire grimper ce qu'on appelle le Page Rank. En effet, dans le moteur de recherche Google, plus un site est pointé par d'autres, plus il est considéré comme "populaire". Et plus il est populaire, plus il monte dans le classement des résultats de google pour une recherche donnée.
Généralement, les spammeurs utilisent des routines automatiques pour lier leurs sites dans les commentaires des blogs. Personne n'aime s'emmerder à taper une longue suite d'urls dans des centaines ou des milliers de blogs pour voir monter sa popularité.

Première mesure : la déHTMLisation

En fait, cette mesure existe depuis que les commentaires ont été ouverts sur JHLP. C'est l'anihilation de toute balise HTML postée sur les commentaires. No Pasaran. Les liens étant généralement postés en HTML, ils passent à la trappe et rendre le spam ineffectif. En effet, si les liens ne sont pas actifs, le robot de Google les ignore et ne rajoute pas +1 à la popularité du site.
Donc, déjà, le spam dont j'ai été victime revient à un joli coup d'épée dans l'eau.

Deuxième mesure : les liens ne te rendent pas populaires

C'est Simon Willison qui avait préconisé en premier ce hack. Puisqu'un lien direct vers le site fait monter sa popularité, il suffit de le transformer en lien indirect.

Je m'explique... Imaginons que je spamme-commente Trop2Bonheur avec mon site jaimelesframboises.com. Je poste un lien direct sur les commentaires. Observons ce que voit le robot de Google :
trop2bonheur.net ===> jaimelesframboises.com
Conséquence : Puisque tropZbonheur pointe vers jaimelesframboises, la popularité de jaimelesframboises augmente.

Solution de Simon Willison
Transformer le lien en une redirection sur un script qui redirige de nouveau sur le site jaimelesframboises :
trop2bonheur.net ===> [script sur trop2bonheur] ===> jaimelesframboises.com
Conséquence : trop2bonheur pointe sur trop2bonheur, ce qui ne fait pas particulièrement monter sa popularité.

Google est ton ami
Quelques semaines après avoir lancé cette idée, Google propose une URL qui effectue une redirection automatique vers n'importe quelle adresse. Donc :
trop2bonheur.net ===> [script sur google.com] ===> jaimelesframboises.com
Conséquence : La popularité de Google augmente dans le moteur de recherche Google, ce qui est complètement inutile pour le vilain spammeur.

Sur JHLP, cette redirection est active sur les commentaires (dans le champ url, et le champ texte).

Troisième mesure : La liste noire

Ca, c'était pour la partie "j'ai réussi à spammer tes commentaires, connard".
Maintenant, ça me gave profondément d'avoir à virer à la paluche les commentaires bidons balancés par ces sinistres idiots. Alors, à la manière d'un firewall, j'ai mis en place une sorte de filtre. Si quelqu'un essaie de mettre un message contenant un lien vers un des domaines contenus dans mon fichier de blacklist, il passera à la trappe.
J'ai récupéré quelques centaines de domaines listés par Simon Willison, j'espère qu'ils suffiront. De toute façon, si un spammeur parvient à passer au travers de mon filtre, ça sera très facile pour moi de récupérer les urls pointées et de les rajouter à la fin de ce fichier texte.
Fastidieux, certes, mais facile.

Note : J'ai pas pu utiliser directement le fichier blacklist en entier, mon script PHP m'a craché une erreur du style "regexp too long".
Faudra peut-être que je réfléchisse à une idée plus puissante et plus performante pour blacklister les milliers de domaines enregistrés par les comment spammers sans faire tomber mon script.
Dommage. Mais ceux que j'ai déjà, c'est sûr ils passeront pas.

Et maintenant, je t'attends enculé de ta race !