Des spammeurs m’ont rendu visite ! La solution ?
Aujourd’hui, j’ai découvert avec stupéfaction plus de 2522 pourriels dans ma boîte aux lettres ! Ces derniers m’ont été envoyés car Dotclear avait reçu le même nombre de trackbacks entre quatre heures et six heures du matin.
Le contenu du spam
Tous ces trackbacks ont été postés par un certain « Linux sux »[1]. Ils contenaient :
- POWER SPAM ASHER (dois-je me sentir visé ?)
- pourquoi Linux sux ?
- CE BLOG A ÉTÉ POWER-SPAMMÉ PAR UNE ÉQUIPE DE TROLLS
- POWER SPAM BY KROLG
- d0s att4ck
- dos attack
Les IP des spammeurs :
- 212.138.64.174 (Arabie Saoudite)
- 203.144.160.249 (Thailand)
(c’est probablement des proxies)
Pourquoi ils font ça ? Mystère… Peut-être qu’ils n’ont rien d’intéressant à faire dans leur vie ? Peut-être que c’est des jeunes, boutonneux, qui croient que ce qu’ils viennent de faire est un exploit ? 😀
Ma solution
J’ai opté pour les requêtes MySQL car Dotclear ne nous donne pas la possibilité de supprimer un groupe de commentaires en utilisant un filtre (peut-être qu’un plugin existe ?).
Comme il n’y a que deux IP qui ont posté les commentaires, je les ai utilisées pour supprimer tous les spams :
DELETE FROM `dc_comment` WHERE `comment_ip` = '212.138.64.174' OR `comment_ip` = '203.144.160.249'
Tous les spams avaient été supprimés. Malheureusement, il y avait toujours le nombre 900 trackbacks, 800 trackbacks, etc. en dessous des billets…
Pour recompter le nombre de commentaires / trackbacks de chaque billet, j’ai utilisé cette requête :
UPDATE dc_post SET nb_trackback=0; CREATE TEMPORARY TABLE tmp SELECT post_id, count(*) as compt FROM dc_comment WHERE comment_pub=1 && comment_trackback=1 GROUP BY post_id; UPDATE dc_post, tmp SET dc_post.nb_trackback=tmp.compt WHERE dc_post.post_id=tmp.post_id;
(grâce à ce topic qui m’a fait gagner du temps !)
J’ai principalement rédigé ce billet pour vous montrer cette petite astuce, en espérant qu’elle vous sera utile un jour 😉
À bientôt !
[1] dans le jargon de l’informatique, « sux » veut dire « nul ».
pfff… j’ai eu le même problème sur mon blog y’a deux mois avec une bande de cons qui s’amusait à mettre des liens pornographiques dans les trackbacks. Apparement, ils avaient fait une boucle infinie sur le ping. Depuis, je suis passé à wordpress qui vérifie si un trackback/commentaire n’a pas déjà été posté avant de le valider.
Sinon, on peut aussi bannir les IP’s ou aviser leur fournisseur internet mais comme c’est des proxy… ça neservirait pas à grande chose 🙂
Pas très jolies, les requêtes MySQL directes :s M’enfin, j’aurais pas fait mieux 🙂
> Sinon, on peut aussi bannir les IP’s
Je viens de bannir leur IP finalement. J’espère que cela va les calmer !
> Pas très jolies, les requêtes MySQL directes
C’est vrai que ce n’est pas très joli, mais c’est assez pratique quand même 😉
test
Tu t’en ai bien tiré. Bravo
Le seul truc auquel il ne faut pas succomber dans ces cas la c’est le désespoir face à la connerie des gens.
Je n’aurais qu’un mot : SpamClear ! Filtre baysien faisant tres bien son travail de tri, sa dernière version vient avec un bouton indispensable : "Vider tout le spam" !
Ma solution perso contre les spams. Testée et approuvée, seul inconvéniant : utilise du javascript.
En gros, fais en sorte que <form action="xxx"> contiennent l’ip de l’utilisateur. Puis plus loin dans ton formulaire remplace le <input type="submit" /> par un <input type="button" /> dans lequel tu places un onclick="" qui apellera une fonction qui changera le xxx ( dans le <form>) par la réelle page vers laquelle tu veux rediriger la requete, et tu dinis pas un form/submit();
J’avais un forum perso qui était spammé à tout va, et depuis que je fais comme ça, plus aucun message ne passe, et à la limite si le bot est mal conçu il se spamme lui même en quelque sorte…
En esperant n’avoir pas trop été inutile
@Simtris: merci.
@JJL: je préfère moi aussi les filtre baysien, mais la dernière fois, le plugin SpamClear n’avait pas bien marché avec les trackbacks (j’avais pourtant fait toutes les modifications requises, dans le code source de Dotclear). Bon, peut-être que la nouvelle version marchera bien, je vais l’installer pour voir 🙂
@Azmeuk: merci pour l’astuce Javascript. Je la testerai bientôt 😉 elle pourrait être utile pour les spams dans les commentaires (pour les trackbacks, j’en doute !).
Autre astuce (très) utilisée : rajouter un if($_POST[‘button’]) .
Euh, je me corrige : ajouter if($_POST[‘button’]) ne sert à rien… du moins dans le cas des trackbacks. Pour les commentaire, c’est par contre très pratique.
Bah bloquer les trackbacks reste quand-même la meilleure solution. Pour les spammers (les vrais – ceux qui viennent nous vendre entre-autres des médicaments pour les troubles érectiles) y’a Bad Behavior qui marche très bien. Mais pour ceux qui veulent seulement polluer (comme c’est le cas ici "dos attack") c’est des simples utilisateurs et non des robots.
Une solution consisterait à programmer soit même une petite vérification qui vérifie si le trackback n’a pas déjà été posté (c’est assez facile en PHP mais faut connaître le système de Dotclear) Après ça, y’a plus de boucle infinie.
Autre chose, saches qu’une IP envoyée par le $_SERVER[‘REMOTE_ADDR’] ça vaut rien. Des millions de proxys "anonymes" existent sur le net. Le plus efficace pour découvrir la vraie adresse d’un utilisateur c’est d’avoir une fonction qui vérifie les HTTP_X_FORWADED_FOR et CLIENT_IP (envoyés la plupart du temps)
J’ai installé SpamClear aujourd’hui pour me debarrasser de plus de 4000 spams (OMG! 😮 )
Pour l’instant ca marche bien , tout les spams recu depuis l’installation ont été reconnus comme tels.
Asher , tu utilises quoi pour localiser les IP ? Je sais qu’il existe des outils de ce type sur le web mais je cherche une version console ou mieux, en mode graphique avec une carte .
Perso j’ai fermé les trackbacks…
sinon pour ta requête (intermédiaire) un "select count(postID) …" suffit non ?
@strider: j’utilise Geoip. J’en ai parlé dans ce billet old-blog.asher256.com/in… 😉
Que de finesse ! (Et sous le billet qui va bien…)
@Thesa: Ils n’ont vraiment rien à faire 😀 Bon, le ménage vient d’être fait (en cinq minutes).
Je pense que ceci pourrait grandement t’intéresser chef 😉
http://www.goodykz.123.fr/?p=103
@SolykZ: Intéressant… Merci pour le lien 🙂
Pas de quoi 😉
Alors, déjà des changements ??
Pour ma part, j’en ai plus eu depuis 24h 🙂
Je l’ai ajouté hier, j’attends de voir le résultat d’ici quelques jours 😉
Ouaip j’vois ça, sauf que tu pointes le lien vers la page qui donne le lien ! C’est à dire que le lien que tu places sur ton blog, c’est le lien dont le texte "Combattez les spams" fait référence (en actualisant, tu remarqueras qu’il est re-généré)
Pour ma part, je l’ai placé sur ma sidebar de droite, qui apparaît sur toutes les pages du blog, dans un commentaire conditionnel sous la zone "Divers"…
Dis, y’a une nouvelle version de Firefox 2, la 2.0.0.2… Tu préviens quand t’as mis ton dépôt à jour ? 😛 (J’en ferai d’ailleurs un p’tit article sur mon blog, si j’ai ta permission ;))
J’ai ajouté :
<div style= »display:none »>
<a href= »http://french-90657683183.spampoison.com »>Combattez les spams</a>
</div>
Ce n’est pas suffisant pour provoquer la boucle infinie ? Faudrait-il changer le lien ? (par exemple mettre http://www1172369759567.metroinvest.com/ )
Concernant dépôt, la mise à jour est prête, je mettrais le tout en ligne normalement demain : Firefox et Notecase 😉
Oui, tu dois changer le lien et mettre celui où pointe le texte "Combattez les spams"… A la rigueur, je ne suis pas certain que de placer tout ça dans une div soit nécessaire, un bête commentaire (et non un commentaire conditionnel, comme j’ai dit plus haut… désolé, c’est juste le métier qui rentre) contenant l’url de la page, sans rien d’autre, ça suffit amplement 😉
Pour Firefox 2.0.0.2, dès que je vois Synaptic me dire que la mise à jour est prête, je poste sur GoodykZ 🙂
Pour Notecase, en fait j’avais passé 300 cartes sous Roboform (je t’avais laissé un commentaire y’a une paire de mois sur l’article ad-hoc, concernant l’import des cartes roboform ou j’sais plus trop), et j’ai la flegme de tout retaper manuellement, donc le gestionnaire propre à Firefox a pris le relais et fait, finalement, bien l’affaire 🙂
Verdict après trois jours : spam poison est efficace !
Avant, j’avais plus de trente spams par jour. Aujourd’hui, j’en ai reçu deux 😀
Moi, j’en reçois plus aucun, à part quelques trolls de personnes humainement constituées (des spams aussi, donc) 😀
slt,
je crois que captcha vas resodre ce probleme des spam
cordialement.