Tout savoir sur WordPress
Tutoriel WordPress

Se protéger des spams sur les commentaires via un fichier .htaccess

Le spam des commentaires est un problème récurant. Une astuce permet de réduire les risques en interdisant aux robots l’accès au fichier wp-comments-post.php

Si vous autorisez vos visiteurs à poster des commentaires sur les articles de votre blog, vous avez certainement fait face aux robots spammeurs.

Pour aider Askimet à lutter et réduire les attaques des spammeurs, il existe une astuce qui consiste à bloquer l’accès au fichier wp-comments-post.php qui permet de traiter la soumission des commentaires.

Le code qui suit est à placer dans un fichier .htaccess à la racine de votre site Internet.

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]


## ******** Pour se protéger contre des commentaires de Spam **********
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !.*mon-site.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://www.mon-site.com [R=301,L]

[/pastacode]

Cet article a été mis à jour il y a 4785 jours - Il n'est peut être plus à jour !

Article écrit par Jonathan B.

Jonathan est le co-fondateur de WP Media, startup connue pour être l’auteur de WP Rocket et Imagify. Il est aussi co-organisateur du WordCamp Lyon et Paris.

20 Commentaires

  1. Attention à cette astuce. Ceux qui visites votre site en désactivant leur referer (navigation sans traces) ne pourront pas poster de commentaire.

    Ces visiteurs sont de plus en plus nombreux.

    J’ai testé la chose sur mon propre blog, j’avais effectivement pas moyen de poster un commentaire.
    Il faut ajouter une condition à la liste des conditions qui vérifierait qu’il existe bien un referer genre :

    RewriteCond %{HTTP_REFERER} !^$

    Mais je n’ai pas encore pu tester et ne connais pas le résultat d’une telle condition.

    Attention donc ;)
    On en parle ici dans l’article et les commentaires : http://www.creativejuiz.fr/blog/tutoriels/wordpress-securisez-votre-site-grace-a-quelques-astuces

    À bientôt ;)

  2. Je précise mon message après quelques tests :

    – J’ai tenté de poster un commentaire ici même, je suis redirigé comme un mal-propre vers une erreur 404, ce qui est normal après avoir désactivé mon referer.

    – J’ai tenté une réécriture du code sur mon serveur, ça semble fonctionner :

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

    J’espère que ça servira ;)

  3. @Geoffrey : Sympa la remarque ! Je me souviens qu’un membre m’avait fait part de son problème pour poster un commentaire sur GeekPress, mais j’avoue n’avoir pas fait le rapprochement avec ce bout de code.

    Je te remercie pour le code et ton test, je vais mettre à jour le code l’article ;)

  4. Merci pour le trick, une question : ça marche pour tous les plugins anti spam ? Je pense que oui comme c’est au niveau de l’accès au serveur par les robots mais au cas où…

  5. @Linda : En effet, cela n’a aucun impact avec les plugins anti-spam. Cela se passe uniquement au niveau du serveur via le fichier .htaccess

  6. Salut Geekpress ^^C’est suffisant pour bloquer tous les spams cette manip’ ? Car franchement j’en peux plus d’Akismet.Des amis veulent écrire un commentaire et leurs participations sont considérées comme des spams. Incompréhensible… :S

  7. @Guillaume : Cela ne permet pas d’éradiquer complément les spams. Par contre, c’est un très bon complément à Akismet ou NoSpamNX.

  8. Salut Geekpress ^^C’est suffisant pour bloquer tous les spams cette manip’ ? Car franchement j’en peux plus d’Akismet.Des amis veulent écrire un commentaire et leurs participations sont considérées comme des spams. Incompréhensible… :S

  9. @agen bola : Il ne faut pas compter uniquement sur cette protection pour avoir 0 spam. Cela permet d’en filtrer un peu plus, mais ça ne garantit pas un filtrage complet.

  10. Ca fait longtemps que je cherche un moyen pour réduire les spammeurs..mais je n’ai pas pensé à bloquer l’accès au fichier wp-comments-post.php !
    Merci pour l’astuce