Marre du spam et des importuns qui viennent visiter, commenter votre site wordpress ? Voici quelques astuces pour les identifier et les bloquer simplement
Halte au spam et aux sites mal intentionnés !
Les agressions que subissent quotidiennement les sites internet sont multiples : du simple commentaire de spammeur à l’attaque « technique » en passant par des messages frauduleux sur vos formulaires de contact, tous les moyens sont bons pour essayer d’utiliser vos pages, votre notoriété, vos ressources ou simplement pour tenter de vous abuser.
De nombreux systèmes existent pour identifier et bloquer ces attaques, je ne vais pas en faire l’inventaire ici.
Je voudrais partir plutôt de mon expérience personnelle pour vous indiquer comment filtrer et bannir sélectivement certains de ces e-importuns.
Mes sites sont (je pense, j’espère!) assez bien protégés, ou du moins j’ai fait le minimum nécessaire pour qu’ils le soient : je fais confiance à mon hébergeur et à mon Webmail pour bloquer les principales attaques et messages indésirables et j’utilise sur mes sites WordPress des outils comme AntispamBee pour bloquer les commentaires bidons (voir mon article sur cet excellent plugin: WordPress – les extensions indispensables : Antispam Bee).
Mais ces outils peuvent parfois « laisser passer » quelques ennuyeux ou, au contraire, classer comme indésirable un message ou un commentaire que vous aimeriez conserver.
C’est pourquoi que je ne paramètre jamais la suppression automatique des éléments bloqués ou classés comme spams (j’y ai parfois trouvé de vraies contributions).
De fait, lorsque je me décide à « faire le ménage », je découvre de longues listes de vrais casse-ouaibe dont certains sont à la fois acharnés et identifiables.
C’est là que j’interviens pour bannir spécifiquement leur IP, leur site ou carrément le pays de provenance lorsque celui ci ne correspond pas au trafic que j’attends sur mon site.
Identifier les spammeurs
En venant sur votre site, un spammeur a toujours un objectif : vous caser un message plein de liens bien pourris pour générer du trafic ou, sous couvert d’une remarque bien bateau ou incompréhensible, poser l’air de rien un lien vers son site dans la partie identification de l’auteur.
Dans les deux cas, ils vous laissent une trace volontaire ou non, url et/ou adresse IP. Un exemple avec mon ex-commentateur acharné « alkatadar » :
Nous avons là un spécimen commun du spam automatisé dont j’avoue ne pas trop comprendre l’objectif. Je n’ai pas reproduit la totalité de son message qui fait environ 350 lignes(!), le début semble cibler un site de vente de dvd en Australie, le reste n’est qu’une litanie de liens biens nazes vers des centaines de sites de toute sorte, liens dont la forme fait plus penser à du negative seo qu’à du netlinking de bourrin (ce qui revient au fond un peu au même…).
Mais trêve de dissection du comportement de ce gêneur, revenons à notre objectif : son éradication (de nos sites évidemment, je suis profondément pacifiste et ne souhaite pas le moindre mal à ce foutu ☻#!Ø¡). Pour l’identifier, nous avons deux informations (que j’ai astucieusement surlignées ci-dessus comme vous l’aurez remarqué): l’url qu’il a bien voulu nous laisser et une adresse IP récupérée par WordPress.
[L’adresse IP ? pour ceux qui se posent la question, IP pour « Internet Protocol », c’est l’identifiant permanent ou provisoire de la machine (pc ou serveur) d’où est parti le message.]
Pour l’url, dans ce cas précis il y a fort à parier qu’elle n’est pas celle de notre spammeur, au mieux celle du site qu’il veut « promouvoir », au pire une url bidon.
Son adresse IP par contre nous intéresse car, même provisoire, elle nous donnera des informations importantes sur sa provenance (FAI, serveur, pays…).
Ces informations détaillées peuvent être trouvées sur un grand nombre de sites spécialisés. J’ai utilisé ici geoiptool.com, un site simple qui ne donne que la géolocalisation de l’adresse. D’autres comme dnslookup.fr vous donneront plus d’info sur le serveur, le propriétaire, la plage d’adresses utilisées…
Voici nos infos :
Hmm, la mondialisation est passée par là, notre promoteur de site australien nous écrit depuis ou via un serveur ukrainien.
Le voici donc démasqué, passons à l’action ! Je vous propose deux méthodes la première ayant l’avantage d’être plus « directe » mais l’inconvénient d’être plus technique.
Bannir IP, Pays, site dans le .htaccess du site
Je vous le dit tout net, si le terme htaccess vous est inconnu, passez directement au chapitre suivant car même lorsque je vous aurai expliqué que le fichier qui porte ce nom est l’équivalent du portier d’une boîte de nuit, le premier rempart à l’entrée sur votre site, vous ne serez pas plus avancé sur où, quand et comment (où est ce fichier, comment le mettre à jour… quand va-t’il nous l’expliquer).
Vous expliquer le htaccess fera peut-être l’objet un jour d’un article dédié, ce n’est pas l’objet de mon propos. Si cela urge, vous pouvez facilement trouver des explications forts satisfaisantes sur le web (ex:commentcamarche.net/7-apache-les-fichiers-htaccess)
… Bon donc, comme vous savez comment modifier un fichier htaccess, voici 3 façons de bloquer le trafic de votre enquiqui-nerd:
Si vous n’avez pas déjà utilisé de directives de restriction d’accès (cf doc apache.org/docs/2.4/fr/mod/mod_access_compat) commencez par ajouter les lignes
order allow,deny
allow from all
Ces directives indiquent:
- dans quel ordre prioritaire doivent être traités les autorisations et les restrictions. Dans notre cas on commence par traiter les autorisations (allow) puis les interdictions (deny)
- Comme nous allons traiter des interdictions spécifiques, nous commençons par tout autoriser (allow from all)
Cet méthode suit la logique la plus commune (« j’autorise tout sauf »), certains sites aux accès très restreints suivent la logique inverse (« j’interdis tout sauf »). Fortement déconseillé dans le cas de sites grand public puisqu’ils sont destinés avant tout à être vus et donc visités.
Bannir une adress ip spécifique ou une plage d’adresse
A la suite des deux lignes indiquées ci dessus,insérez :
deny from 91.200.12.84
où vous prendrez soin de remplacer l’adresse IP par celle(s) que vous voulez bloquer
Pour bloquer une plage d’adresse il suffit de ne conserver que la partie majeure de l’IP, ainsi, par exemple
deny from 91.200.12
aura pour effet de bannir toutes les IP (255 au total) commençant par 91.200.12
Bloquer un nom de domaine dans le htaccess
Pour interdire les visites depuis un domaine spécifique, le principe et les ordres sont les mêmes que ci-dessus:
deny from nom-du-site-de-l-envahisseur.con
Simple, non ?
Mais si nous relevions maintenant d’un (gros) cran le niveau de nos restrictions…
Interdire le trafic web en provenance d’un pays
1ère méthode : utilisation du module GeoIP
Pré-requis: l’utilisation de cette fonction nécessite que le module GeoIP de Maxmind soit installé sur votre serveur Apache. (dev.maxmind.com/geoip/legacy/mod_geoip2/#Installation)
Dans mon cas mon visiteur malvenu a une adresse IP située en Ukraine.
Même s’il se peut que ce pays ne manqua pas de charme (moins attrayant ces temps-ci), n’étant pas persuadé que les ukrainiens soient intéressés par mes propos, je peux décider de bloquer (carrément!) tout le trafic web en provenance de cette contrée.
Toujours à la suite des deux directives globales décrites au début de ce chapitre, il suffit de mettre :
GeoIPEnable On
GeoIPDBFile /nom du dossier/GeoIP.dat
SetEnvIf GEOIP_COUNTRY_CODE Code Pays iso-3166 sur 2 caractères BloquerPays
Deny from env=BloquerPays
Le nom du dossier est celui où est installée la base de données GeoIP.dat
Pour connaître les codes pays iso-3166 utilisables, rendez vous ici: wikipedia.org/wiki/ISO_3166-1
Dans mon cas j’ai donc mis dans le htaccess les directives suivantes :
GeoIPEnable On
GeoIPDBFile GeoIP.dat
SetEnvIf GEOIP_COUNTRY_CODE UA BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry
Vous remarquerez que, dans un esprit de totale neutralité géopolitique, j’ai bloqué les sites venant aussi bien d’Ukraine que de Russie.
2ème méthode : récupérer et interdire les IP d’un pays donné
Si vous n’avez pas la possibilité d’utiliser GeoIP, une autre solution plus fastidieuse consiste à récupérer la liste des IP venant des pays à qui vous voulez interdire l’accès de votre site et de les coller « en masse » avec l’ordre « Deny from » décrit plus haut.
Ils existent différents sites qui vous permettent d’obtenir ces adresses IP, je vous propose d’essayer le formulaire du site Ip2location (http://www.ip2location.com/blockvisitorsbycountry.aspx) qui est assez simple (en anglais).
Les listes des IP sont générées sous forme de contenu texte qu’il vous faudra ensuite coller dans votre htaccess… Des listes souvent très longues, cette méthode est donc à utiliser avec nos célèbres amis corses et arméniens (parcimonie et a-bon-escient).
Plugins WordPress pour bannir un site, un pays ou une IP
Pour ceux que le chapitre précédent n’a pas passionné, ou qui n’ont tout simplement pas les ressources pour gérer eux-même leur fichier htaccess, il existe sous WordPress de nombreuses alternatives par l’intermédiaire des plugins.
Je ne les ai pas testés, je vous renvoie simplement à la liste de ceux qui proposent le blocage d’IP, de sites ou de pays :
- wordpress.org/plugins/search.php?type=term&q=ip+ban
- wordpress.org/plugins/search.php?type=term&q=site+ban
- wordpress.org/plugins/search.php?q=country+block
Avec toujours le même avertissement : choisissez de préférence des plugins bien notés, pas trop récents et mis à jour fréquemment.
Ces méthodes pour bloquer ou bannir des sites indésirables ne sont pas les seules, n’hésitez pas à m’indiquer celles que vous utilisez, au sein de WordPress ou ailleurs.
Bonjour,
j’ai un souci avec des plateformes telles que linkedin et indeed qui n’arrêtent pas de prendre mes offres d’emploi depuis ma page carrière pour l’intégrer à leur plateforme.
J’ai beau échangé avec eux, mais ils font la sourde oreille.
Si je souhaite bloquer ces deux ENVAHISSEURS de ma page carrière, je dois faire ceci dans le fichier Htaccess :
order allow,deny
allow from all
deny from indeed.fr
deny from linkedin.fr
deny from indeed.com
deny from linkedin.com
Je dois placer ce bout de code au début de fichier Htacces ou à la fin du fichier htaccess ?
Sinon, quelle sera la bonne syntaxe pour la rédaction de mon code si ce n’est le cas.
Sachant que je souhaite virer les bots indeed et de linkedin de mon site internet sur les deux extensions le.fr et le .com.
Merci encore !
Re-bonjour,
La position au sein du htaccess n’est pas primordiale (de mémoire) la syntaxe de votre code du message précédent semble bonne.
Je reste sur l’idée que si il y a aspiration de vos données, les bots qui le font n’arrivent pas du domaine principal. L’identification est même probablement une simple adresse IP
Bonne continuation
Thierry
Bonjour,
Merci pour votre question.
La syntaxe semble bonne mais je m’interroge sur les domaines que vous interdisez : pensez vous que leurs « robots aspirateurs » de données viennent de ces domaines ? J’en serais étonné.
Dans ce cas, vous comprenez que cela ne fonctionnera pas.
Et je ne peux malheureusement pas plus vous aider, n’ayant été jamais confronté à ce type d’envahisseur.
Bon courage
Cordialement,
Thierry
Merci pour cet article. J’avais Wordfence et cela a été très facile de blacklisté l’IP.
Bonsoir,
Heureux d’avoir pu vous aider
Cordialement,
Thierry
Bonjour,
Je possède un site vitrine pour une société de déménagement (intervient au niveau local, sud ouest de la france) et dans mes données analytics j’ai beaucoup de visiteurs (environ 75%) qui proviennent de pays comme le Nigéria, les Philippines etc.. Bref, rien à voir avec mon activité. Ces utilisateurs pourrissent mes statistiques car ils restent <00:00:01 sec. Je ne sais pas pourquoi je suis ciblé par ces visites "fantômes" mais c'est très embêtant, avez vous une idée?
Merci beaucoup
Bonjour,
Difficile de dire pourquoi untel ou untel visite un site depuis l’autre bout de la planète. Cela peut-être un robot, un hacker comme un vrai visiteur égaré ou curieux…
Je vous conseille d’utiliser l’une des astuces que je donne dans cet article pour bloquer les pays « exotiques » qui viennent polluer vos statistiques.
Si vous utilisez Google Analytics, pensez également à cocher l’option « Filtrage des robots : Exclure tous les appels provenant de robots connus » dans les paramètres de la vue.
A votre disposition
Cordialement
Thierry
Si je banni un pays, qu’es-ce qui se passe pour les visiteurs de ce pays… Ils recoivent un message disant qu’ils ont été bannis ? que le site n’est plus disponible ? plus accessibles ? Je vous explique mon problème peut-être pourrez vous me conseiller une autre solution. Nous sommes un groupe de recherche ARIMA associé à une université. Il y a un site dont le nom nous ressemble beaucoup ARRIMA du gouvernement Québec http://www.immigration-quebec.gouv.qc.ca/fr/informations/arrima/index.html pour les personnes qui souhaitent immigrer ici. Google propose notre adresse en premier à ceux et celles qui font des recherche dans ce sens. Tant et si bien que 50% du trafic de notre site et des inscriptions à notre Info-lettre provient d’Afrique et de personnes qui cherchent à immigrer. S’après vous, est-ce qu’il serait pertinent dans ce cas de bannir les adresses IP provenant d’Afrique ?
Bonjour Maryse,
Merci pour votre consultation et pour ces questions auxquelles je vais essayer de répondre; elles sont logiques et pertinentes mais il est vrai que je n’avais pas pris le temps d’aborder ces aspects.
Concernant la notion de bannissement d’un pays, les visiteurs vont-être « rejetés » par l’affichage d’une page avec un message de type « Erreur 403 Accès refusé/interdit » ou « HTTP 403 Forbidden ».
Comme le bannissement d’un pays sous-entend généralement la désindexation par le grand GG (et les autres moteurs je pense), votre site ne devrait plus être visible dans les résultats de recherche de ces pays assez rapidement.
Quand à bloquer tout un continent, pourquoi pas mais, étant plutôt adepte de l’ouverture et du partage des connaissances, je me contenterais personnellement de ne bloquer que les pays les plus « émetteurs » de visites.
Pour rappel, le blocage de tout un pays est une méthode parfois indispensable mais forcément imparfaite car elle bloque tous les visiteurs sans distinction de l’intérêt qu’ils portent à votre site et elle ne garantit pas que vous bloquiez pour autant tous les « importuns » (dans votre cas plutôt des « égarés ») : des candidats à l’immigration dans votre beau pays peuvent avoir une signature IP différente du pays que vous bloquez (VPN, personnes en transit…)
En espérant avoir pu vous aider,
Cordialement,
Thierry
Bonjour et merci pour cette mine d’information.
c’est vrai qu’avec worpress, l’on est envahie par de fou furieux, l’on se demande comment ils font pour passer leur temps a nous polluer les post…
mais la, je suis content, je part de ce pas vérifier et mettre ses deux lignes de commandes, plus quelques ip envahissantes.
Merci beaucoup et pour le lien d’apache….cool.
j’ irais y jeter un œil.
Bonne continuation.
Fred
J’en recever beaucoup mais la méthode de htacces, ca marche merci pour l’astuce
Bonjour,
Il y a aussi les plugins de sécurités qui bloquent les IP comme wordfence .
ps: pourquoi avoir la version 1.0 de votre thème NewsPlus et non la dernière version 3.0.2 ? (qui est plus compatible PHP5.4), un thème acheté sur Themeforest, on a les mises à jour à vie, sans repayer.
labs.saurabh-sharma.net/themes/newsplus/demo-3/changelog/
Bonjour Er.V,
Merci pour cette contribution. Wordfence apparaît en effet en bonne place sur le 3ème lien du chapitre « Plugins WordPress pour bannir un site, un pays ou une IP » de mon article.
Les plugins sont je vous l’accorde de bonnes solutions pour qui veut s’éviter de mettre les mains sous le capot.
Quand à vos interrogations sur mon site et le thème utilisé… j’ai plusieurs réponses mais je ne suis pas sur qu’elles vous satisfassent… Ce site est figé par manque de temps, je le crois (à tort ?) robuste tel qu’il est maintenu (à priori pas de faille grossière actuellement), je suis un cordonnier donc forcément mal chaussé… Que des mauvaises raisons, je sais. Ça y est, je culpabilise… Je fais une sauvegarde et je tente une mise à jour asap, promis ! 🙂
Cordialement,
Thierry
Merci pour ce tuto, j’ai un grand ménage à faire dans mes visiteurs!!!
J’en est essayé pas mal et dure de s’en débarrasser. En fait même les plugins qui soit disant montre l’IP d’un utilisateur enregistré ne fonctionnent pas sur les spammeurs (pour les réguliers oui). Grâce à ta liste, suis tombé sur « Ban Subdomain Emails » car effectivement mes spammeurs utilisent toujours des sous domaines. Avec ça, plus aucun soucis, aucun paramétrage à faire, juste merveilleux. Les 5 inscriptions à la minutes : terminé !! Après si on veut faire gonfler la liste de ses membres et dire qu’on est un site à 10 millions de membres, faut dire que les spammeurs aident pas mal, mais aucun intérêt, on est bien d’accord. Je ne comprend même pas pourquoi un tel acharnement quand ces mecs s’inscrivent sur mon wordpress mais ne font strictement rien derrière. Perte de temps et de place dans la bdd. Donc franchement merci pour Ban Subdomain Emails, ça aide énormément pour les spammeurs en masse (pour les autres, ça se fait au cas par cas avec les plugins que tu donne).
Bonjour,
J’ai ce site de vente en ligne en wordpress accessible en europe, qui ne doit être visible, dans un pays, que par les distributeurs. Pour cela je cherche une solution pour bloquer le pays et permettre un accès via login (il y a 5 distributeurs pour ce pays). J’ai bien trouvé « country block », mais comment pourrais-je donner l’accès à ces distributeurs qui n’ont pas d’adresse ip fixe?
Bonsoir,
Désolé, ce message s’est retrouvé perdu dans les spams…
Je ne suis pas un expert mais si ils n’ont pas d’IP fixes, cela me semble difficile à mettre en place. Si vous avez trouvé une solution entre temps, merci de la partager !
Cordialement,
Thierry