Aller au contenu

-->

Annihiler les commentaires spammy en 8 lignes

stop au spam sous wordpressSi les commentaires des gentils spammeurs nous font parfois plaisir et peuvent animer (?) un blog à grand renfort de « Super, ça fait des années que je cherche cette information, je suis super enchantée d’avoir trouvé ce blog grâce à {Google|Bing|Msn}, vous écrivez comme un dieu et je vais de ce pas mettre votre blog dans mes favoris, le liker sur Facebook et en parler à tous mes amis. Au fait, quel thème utilisez-vous ? je trouve les couleurs très douces et appropriées. Peut-on garder le contact par mail ? je n’ai pas trouvé votre flux Rss »
Signé: Rachat de crédit

Il faut avouer quand quand on a un blog qui commence à être un peu connu et que l’on se paye 300 spams par jour en russe, anglais, chinois et farsi, la coupe est pleine.

  • Première étape, akismet (livré d’office avec WP, qui vérifie l’ip, le site cible, le contenu du commentaire)
  • Seconde étape, comme je le conseille dans mon guide « 10 secrets« , le plugin NoSpamNx
  • Troisième étape, 8 petites lignes à ajouter dans votre .htaccess

Quezaco ?

Le fichier .htaccess est celui qui gère les notamment les url seo de WordPress. Il est à la racine de votre installation WordPress. On peut lui ajouter quelques petites règles pour amuser les spammers génériques.

La plupart des spammers utilisent les mêmes outils plutôt basiques, en mode « rapide », qui se contentent de poster sur la page wp-comments-post.php sans réfléchir. Ces outils sont en majorité repérables très facilement à deux caractéristiques bien utiles: ils ne s’encombrent pas d’un user-agent, et ne renvoient pas le referer.

Ajoutez donc ces 8 lignes sibyllines à votre fichier .htaccess:


RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*votredomaine.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Ce quelles font ?
Si la requête est de type « post », qu’on envoie des données à wp-comments-post.php
que le referer n’est pas de votre domaine (modifiez cette ligne pour indiquer VOTRE domaine)
ou que le user-agent est vide, on renvoie une 301 vers l’accueil.

Simple, et redoutablement efficace.

Vous aurez toujours quelques spams manuels, mais les spams génériques automatisés vont disparaitre plus vite que leur ombre.

D’après une idée de allguru.net
Photo de AJC1 flickr.com/photos/ajc1/

Vos avis ? Les RT sont comme toujours appréciés ;-)

Voir également:

  • commentaires des blogs
  • wp-comments-post php
  • blocage sur /wp-comments-post php
  • user agent vide spam
  • user agent spam htaccess
  • un simple capcha suffit
  • stop referrer spam joomla
  • spammer sur mes commentaire joomla que faire
  • spam commentaire sur phot word press
  • wordpress si le post commentaire
 

Le 17 octobre 2011 dans Astuces

Taggé avec , , .


42 Réponses

  1. Cliff Gunn a dit

    Annihiler les commentaires spammy en 8 lignes | Blog Expert via @Sylvain http://t.co/6cvwvIhQ

  2. le floch michael a dit

    WordPress : Annihiler les commentaires spammy en 8 lignes http://t.co/FpmYUDEd

  3. Aymeric Bouillat a dit

    RT @mikiweb WordPress : Annihiler les commentaires spammy en 8 lignes http://t.co/9ZR3LH06

  4. Christophe - ProSEO a dit

    WP: Annihiler les commentaires spammy en 8 lignes http://t.co/LkXyb3NQ

  5. b@x a dit

    WordPress : Annihiler les commentaires spammy en 8 lignes http://t.co/FpmYUDEd

  6. Matt de référencement joomla a dit

    Voici encore quelques lignes qui vont alourdir mon htaccess. Il faut faire quand même attention à pas trop le surcharger. Quand j’ai dit à un pote que le mieux faisait 4 pages il m’a mis en garde contre le temps de chargement que ça générait.
    Htaccess : Oui … mais avec modération car Google aime les sites rapides !
    Matt

    (il te manque une balise « /strong » sur ta phrase « ils ne s’encombrent pas d’un user-agent, et ne renvoient pas le referer. »)

    • Sylvain (admin) a dit

      Merci pour la balise, Matt.

      Dans le contexte de sites WP de base, le .htaccess est plutôt pauvre. On y trouve les règles pour les permalinks, point.
      Ensuite, c’est comme pour tout plugin ou fonctionnalité qu’on ajoute: il faut peser le rapport bénéfice/risque.
      Ajouter un plugin est une manière sure de pénaliser le temps de chargement de son blog.
      Ajouter ces 8 lignes est insignifiant en charge supplémentaire, alors que le gain de temps pour l’admin est lui bien concret ;-)

  7. Daniel de Simulateur d'aube a dit

    Contrairement aux autres commentaires, je mettrais un bémol à ce hack.

    Je l’avais utilisé pendant quelques temps, mais plusieurs personnes ne pouvaient plus poster de commentaires. La raison : elles avaient désactivé leur referer pour plus de tranquillité sur Internet, et j’ai donc été obligé d’enlever le hack…

    • Sylvain (admin) a dit

      Effectivement, c’est gênant.
      Ceci dit, bloquer son referer peut avoir d’autres effets de bord ennuyeux, et pose à mon avis plus de problèmes que ça n’en résout.
      Je ne pense pas que cette manip soit courante dans le grand public (c’était sur seomix je suppose ?)
      On peut traiter ce cas en mettant en place une page d’explication, et renvoyer les referers vides vers cette page au lieu de l’accueil.

      Encore un rapport risque/bénéfice à évaluer au cas par cas. Merci pour le retour, Daniel !

  8. Referencement ProSEO a dit

    Merci pour ce hack tres malin. Tu penses qu’il fonctionne si on active la navigation privee de son navigateur ?

    Sinon, je ne trouve pas ton RSS peut-on rester en contact par mail ? Referencement

    • Sylvain (admin) a dit

      Tiens Christophe :-D , heureusement que tu n’as pas mis de lien, sinon c’était poubelle avant de voir de qui ça venait, tu l’as échappé belle !
      Sur la navigation privée, effectivement. Mais je suppose que celui qui veut réellement commenter sur un site n’a pas d’intérêt à être anonyme, sauf s’il vient spammer ou diffamer, auquel cas tant mieux si on le bloque.
      J’espère que celui qui sait passer en mode privé sait également en sortir.

      Au fond, c’est toute la question de la lutte anti spam. On gène forcément des « vrais » utilisateurs en voulant rendre la vie plus rude aux spammers.
      Il n’y a pas encore de miracle. Regarde les captchas : ça gène les vrais utilisateurs, alors que les spammers ont tout ce qu’il faut pour les cracker en full auto…

  9. Magicyoyo@emploi informatique a dit

    Très bien ce filtrage sur le user-agent et le referer. Cela dit, il suffirait que les auteurs de tools de spam le fakent pour que ça marche plus… m’enfin, ça écartera toujours les gros bourrins.

    • Sylvain (admin) a dit

      Tout à fait, c’est le jeu du chat et de la souris… ça n’a pas de fin !

  10. Guillaume Gourlaouen a dit

    RT @aymerictwit: RT @mikiweb WordPress : Annihiler les commentaires spammy en 8 lignes http://t.co/GudTlPme

  11. Arnaud YHUEL a dit

    Annihiler les commentaires spammy en 8 lignes | Blog Expert http://t.co/aaeo7yFa via @SylvainDaure

  12. Arnaud YHUEL a dit

    Annihiler les commentaires spammy en 8 lignes | Blog Expert http://t.co/cIjWlURl via @SylvainDaure

  13. lord gliess a dit

    Annihiler les commentaires spammy en 8 lignes | Blog Expert http://t.co/cIjWlURl via @SylvainDaure

  14. watanya a dit

    Je ne suis pas un spammeur même si je vais pas utilisé mon nom mais un mot clé. Je sais il faut commenter en utilisant son nom. Mais, je suis obligé. Donc, si je reviens a l’article, j’avais besoin de ce type de code pour activer les commentaires sur un site de recette marocaine que j’ai lancé récemment. Thx dude.

    • Sylvain (admin) a dit

      Oh, ce n’est pas bien grave, dans ces cas là je remplace juste le mot clé.
      Ca me semble « fair play ». Je commente aussi sur les blogs d’autres. Je n’ai pas de scrupule à laisser des ancres optimisées sur des posts auto approve déjà blindés; Mais quand je commente « vraiment », je le fais pour le contenu, pas que pour l’ancre.

      Du point de vue du taulier, je n’ai aucune envie de voir mes pages remplies de mots clés non pertinents, non liés à ma thématique, non liés à l’article en cours.
      Donc, sauf exception liée à une appréciation subjective de ma part, les mots clés dans le nom disparaissent purement et simplement.

  15. skoncept a dit

    Merci, vous m’avez aidé beaucoup!

  16. Vanessa a dit

    @Sylvain :  » Effectivement, c’est gênant.
    Ceci dit, bloquer son referer peut avoir d’autres effets de bord ennuyeux, et pose à mon avis plus de problèmes que ça n’en résout.
    Je ne pense pas que cette manip soit courante dans le grand public (c’était sur seomix je suppose ?)
    On peut traiter ce cas en mettant en place une page d’explication, et renvoyer les referers vides vers cette page au lieu de l’accueil.

    Encore un rapport risque/bénéfice à évaluer au cas par cas. Merci pour le retour, Daniel ! » Totalement d’accord , met une page ou tu expliques le tous et c’est bon :)

  17. jam@jeux video a dit

    Enfin débarrasser des spams enfin du moins une grosse partie, c’est déjà un bon début. Merci pour l’info !!!

  18. (anonyme) a dit

    Très belle astuce, mais effectivement si l’on ne parvient pas à récupérer le referrer (referrer vide), cela peut poser des problèmes à des visiteurs de bonne foi. Mais je pense que ce cas est assez rare et peut éviter de recevoir des spams massifs.

  19. remi a dit

    salut!
    Généralement, un captcha suffit sur mes blogs…Une ptite addition et voili voulou!
    Après pour discerner les vrais des faux, il suffit de modérer au cas par cas…

  20. Eurécia (Lisa) a dit

    Pas mieux via htaccess, en effet, merci :)

  21. Robert lu a dit

    Rien ne vaut une bonne vieille modération à la mano :)
    Petite question : ton onglet « Voir également: » c’est les dernières requêtes que cette page a obtenue via google ?
    ça c’est un bon hack :)
    Rob

  22. Sensimix a dit

    Merci Sylvain je viens d’activer askimet et le plug que tu conseils ;)

    Juste il y a une ligne dans le htaccess que je comprends pas trop :

    RewriteCond %{HTTP_REFERER} !.*votredomaine.* [OR]

    Dans *votredomaine.* tu entends *votredomaine.com.* ? ou sans le tld ?

    • Sylvain (admin) a dit

      .* signifie « n’importe quoi un nombre quelconque de fois »
      c’est donc .*tondomaine.com.*
      mais ça marcherait aussi avec .*tondomaine.* du coup ;-)

  23. aem@informatique grenoble a dit

    encore des lignes de plus dans le .htaccess qui commence à être très lourd et complexe !

    Cette méthode avec les plugin wp + un captcha digne de ce nom devrait donner de très bon résultat et alléger la charge de travail liée au filtrage !

    merci ;)

    Sebastien

  24. Didier de Cadoetik a dit

    Assez d’accord avec Rob, un bon vieux Akismet dès l’installation du blog (comme ça plus à y revenir) et de la gestion manuelle, et ça le fait. Après, lorsque l’on est dans des listes en dofollow (comme tu l’es, et je l’était à une époque), on se tape du Rachat de Crédit presque tous les jours, avec des commentaires qui font deux lignes, ou un simple merci pour l’info. Je pars du principe que les commentaires qui apportent une info, une valeur, seront validées sur mon blog… même si le backlink est dans une thématique borderline…

  25. Free Man a dit

    J’ai un blog qui se mange un coup de 100 com’ par jour. Pourtant il est no follow. J’ai tout tenté, y compris les solutions proposées. Le flux de com’ est trop important à gérer!

  26. xor a dit

    super

  27. bugzero a dit

    @DidierDeCadoetik: Tous les sites de SEO parlent de créer des backlinks sur les blogs en dofollow… donc je pense que tant que cette méthode sera « mise en avant », tous les sites seront vite spammés… malheureusement … :(

  28. Robin hood a dit

    Effectivement c’est une véritable plaie c’est spammeur :D ! Heureusement que akismet est là. J’ai un petit blog pas beaucoup visité et pourtant ça spam déjà severement j’ose pas imaginer lorsqu’on a un blog populaire.

    @Matt google ne prend pas en compte le temps de chargement d’un page dans le classement des sites. Cependant ils essaient d’inciter les webmaster a faire des pages rapide.

  29. Bertrand Zistor a dit

    Un bon bout de code signé @SylvainDeaure pour bloquer le spam auto sur vos WP : http://t.co/SJZxdKKK (Akismet a de + en + de mal chez moi)

  30. Référencement School a dit

    Un bon bout de code signé @SylvainDeaure pour bloquer le spam auto sur vos WP : http://t.co/SJZxdKKK (Akismet a de + en + de mal chez moi)

  31. Tristan de Broucker a dit

    Merci @bertimus : Annihiler les commentaires spammy en 8 lignes | Blog Expert http://t.co/Inh9ggtG via @SylvainDaure

  32. Detente a dit

    Cette contribution est géniale, je vous remercie pour le partage.

  33. Marie a dit

    super travail, merci a l’auteur

  34. Gautier Pern a dit

    Bonjour !
    dans ton explication, tu mentionnes 8 lignes à ajouter au fichier .htaccess et je n’en vois que 6. Est-ce une erreur ? Merci !
    GP

    • Sylvain (admin) a dit

      Bah, oui.
      6 lignes, plus une ligne vide avant et après pour séparer du reste :-D