Comment protéger son blog contre le spam
Posté par francevoyage le 7 avril 2009 - 1:01 | Catégorie: astuces internet.
Depuis quelques jours, mon blog est la cible dun spam intensif en provenance de 3 adresses IP. Vous nen avez rien vu car WordPress a équipé son système dune extension bien utile Akismet qui intercepte les messages indésirables et les place en quarantaine jusquà approbation ou suppression. Néanmoins, ce sont plus de 60 longs commentaires rédigés en anglais, bourrés de liens pour des médicaments qui ont envahi ma base de données ces trois derniers jours. Jai heureusement trouvé une parade dont je vais vous livrer le secret ci-dessous.
Il faut tout dabord savoir que les blogs réalisés (« propulsés » comme on dit) avec WordPress sont très répandus. Cest pourquoi, ils sont malheureusement la cible privilégiée des spammeurs. Pour ceux qui lignorent encore (est-ce possible?), les spams, ce sont de faux messages, rédigés en anglais, bourrés de pub et de liens qui nont rien à voir avec votre site et qui envahissent votre mailbox, votre livre dor ou les commentaires de votre blog. Cest juste de la publicité intrusive, du marketing sauvage et forcé, une véritable prise dotage de votre blog. Bref cest horripilant.
WordPress a eu la bonne idée dincorporer à sa plateforme dadministration une extension appelée Akismet quil faut absolument activer quand vous installez WordPress sur votre serveur ou votre hébergeur. Cette extension vous débarrasse de tous les messages indésirables en empêchant leur affichage sur votre blog. Néanmoins, ces messages restent bel et bien stockés dans votre base de données, bouffant de la place inutilement. Normalement, dans linterface dadministration WordPress, après avoir consulté les messages indésirables pour sassurer quils ne contiennent pas un vrai message arrivé là par accident, il y a un bouton à cliquer « tout supprimer ». Chez moi, ce bouton ne marche pas. Je dois donc aller les effacer à la main dans ma base de données en les sélectionnant dans la table wp_comments.
Cest une manoeuvre délicate qui nest pas à la portée de tous. Il faut maîtriser linterface phpMyAdmin, les bases de données MySQL et les tables. La moindre erreur et vous risquez de perdre tous vos commentaires ou vos articles. Bref, à réserver uniquement aux initiés. Par contre, il y a une manière assez facile dinterdire laccès de votre blog à ces moteurs de spam en bannissant les adresses IP envahisseuses.
En installant votre blog WordPress, un fichier .htaccess a été créé automatiquement à la racine du blog. Téléchargez-le en local. Pour pouvoir louvrir, il faut changer son nom. Renommez le fichier .htaccess en htaccess.txt. Du coup, il peut souvrir avec WordPad. Le contenu ressemble à ceci :
# BEGIN WordPress
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
# END WordPress
Rajoutez les lignes suivantes au dessus ou en dessous, cela na pas dimportance :
deny from 194.8.75.163
deny from 194.8.75.149
deny from 194.8.74.220
Vous pouvez rajouter autant dadresses IP à bannir que vous le voulez. Eviter de tester avec votre propre adresse IP, vous nauriez plus accès à votre blog (cest con, hein ?).
Sauvez ce fichier texte (htaccess.txt). Réexpédiez-le sur votre serveur distant. Effacez le .htaccess existant et renommez immédiatement le htaccess.txt en .htaccess. Vous pouvez essayer de le renommer en local mais votre PC risque de refuser cest pourquoi il vaut mieux le faire sur le serveur distant.
Cest la solution la plus simple. Si ça marche pas, tentez ce code suivant (toujours à ajouter dans le fichier .htaccess) :
<limit GET POST>
order allow,deny
deny from 194.8.75.163
deny from 194.8.75.149
deny from 194.8.74.220
allow from all
</limit>
Cest le langage des serveurs Apache, les plus utilisés par les hébergeurs. Traduit en jargon compréhensible, ça veut dire : Limiter le postage des messages. Commencer par les accès autorisés puis traiter les accès refusés. Bloquer tous les messages provenant des adresses IP mentionnées après « deny from » et autoriser tous les autres. Ainsi, le spam natteindra même plus votre base de données. Il sera stoppé avant même darriver.
Si malgré ces lignes, vous recevez encore des messages de ces adresses IP, voici la dernière possibilité (assez méchante daprès ce que je comprends) :
RewriteCond %{REMOTE_ADDR} ^194\.8\.74\.[0-9]{1,3}$
RewriteRule .* http://127.0.0.1 [R,L]
RewriteCond %{REMOTE_ADDR} ^194\.8\.75\.[0-9]{1,3}$
RewriteRule .* http://127.0.0.1 [R,L]
Cest une règle de réécriture. Elle renvoie le spammeur vers son serveur local. Comme cela, il se spamme lui-même. Et pan dans la g ! Le code ci-dessus va bannir toutes les adresses 194.8.74.0 à 256 et 194.8.75.0 à 256. Cest un peu expéditif comme solution car elle condamme certains visiteurs dont le seul crime est davoir le même fournisseur daccès que les 3 spammers qui sévissent en ce moment. A vous de voir si les solutions présentées précédemment suffisent.
PS. Vous trouverez les adresses IP des expéditeurs de spams dans lentête du message bloqué par Akismet, à côté de leur nom et fausse adresse email.
En tout cas, aujourdhui, je nai plus eu le moindre message indésirable. Le système fonctionne !
10 avril 2009 à 18:37
Je tiens à préciser que lastuce fournie nest pas réservée aux blogs WordPress. Tout webmaster hébergeant ses pages sur un serveur Apache, peut créer un fichier .htaccess à la racine de son site ou de son blog et y programmer des instructions telles que bannir laccès aux indésirables, réécrire ladresse url en rajoutant www devant le nom de domaine et /index.php après celui-ci, histoire déviter le duplicate content durement sanctionné par Google.