Comment bloquer les spam bots et aspirateurs de site web par leur User Agent avec .htaccess

Le fichier htaccess nous offre aussi une technique pour bloquer les spam bots, des robots d’indexation illégitimes qui parcourent votre site web pour saisir les adresses emails pour les ajouter à des listes de spam, ou même, dans le cas des aspirateurs, copier votre site au complet afin de faire soit une copie locale, ou utiliser le contenu pour des fins monétaires en le publiant sans votre consentement, ce qui peut avoir des conséquences néfastes additionnelles avec Google et le contenu dupliqué. Ces robots gaspillent votre bande passante de façon considérable sans compensation pour vous ou la popularité du site.

On peut en effet limiter ces abus en identifiant le user agent du navigateur, et décider de le bloquer s’il correspond à une liste de robots connus indésirables. C’est une technique parmi d’autres, qui n’est pas parfaite, mais qui devrait au moins s’ajouter à vos méthodes de protection contre les pilleurs:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} .*aspirateur* [NC]
RewriteRule .* - [F]

Dans cette règle, on démarre le RewriteEngine de Apache (il ne doit être démarré qu’une seule fois dans le fichier htaccess, si vous utilisez d’autres fonctions le requérant) et on compare le « user agent string » du navigateur avec une liste d’identifiants connus, comme dans cet exemple imaginaire, aspirateur. La partie [NC] indique que la fonction n’est pas « case sensitive » dans la comparaison, c’est-à-dire que le texte peut être écrit en majuscule ou minuscule. Ensuite on conclu en interdisant la consultation de la page en renvoyant le code [F], c’est à dire Failed.

Maintenant, cet exemple est académique, je ne connais pas de robots qui utilisent le terme aspirateur dans son identifiant, mais nous allons fournir une liste détaillée à la fin de l’article.

La fonction utilise les « regular expressions » (regexp) pour comparer des bouts de texte, et dans ce cas, le morceau de texte pourrait avoir d’autres mots, mais nous ne visons que le terme aspirateur. Pour un exemple différent, examinons un nom commun de robot qui est indésirable:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Java [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*aspirateur* [NC]
RewriteRule .* - [F]

La ligne ajoutée indique que tout robots dont l’identifiant commence par Java devra être pris en compte aussi. Ce terme est très commun dans ce type de technologie. Comme on peut le voir, les lignes peuvent s’additionner pour construire une longue liste de termes à évaluer. Dans ce cas, il faut finir la ligne avec [NC,OR]; le OR veut dire OU en français, et indique qu’une autre définition suivra.

Dans la même lignée de pensée, certains webmasters, dont je fais partie, voudraient aussi bloquer Google Web Accelerator, un gadget de Google pour accélérer la navigation sur un site en téléchargeant les fichiers à l’avance pendant que le visiteur lit une page, connu sous le terme de prefetching. Ce gadget tend à gaspiller lui aussi la bande passante sans fournir d’avantages réels au webmaster, et peut compliquer la navigation en interférant avec les cookies ou les formulaires, ou même en visitant des pages qui sont interdites dans le fichier robots.txt. Google a tout de même la grâce de fournir une fonction htaccess aux webmasters s’ils désirent bloquer Google Web Accelerator:

#block google web accelerator
RewriteEngine On
RewriteCond %{HTTP:x-moz} ^prefetch [OR]
RewriteCond %{X-moz} ^prefetch 
RewriteRule .* - [F]

Bon, finissons cet article en publiant une longue liste pratique de robots indésirables que vous pouvez ajouter à votre fichier. Il y en d’autres, il importe pour vous de trouver ceux qui vous agacent en consultant vos logs, ou en cherchant sur d’autres sites web qui se spécialisent plus sur ce phénomène et qui sont peut-être plus à jour:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} .*Atomic\_Email\_Hunter* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*HTTrack* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*Filangy* [OR]
RewriteCond %{HTTP_USER_AGENT} .*BackWeb* [OR]
RewriteCond %{HTTP_USER_AGENT} .*BackStreet* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Bandit* [OR]
RewriteCond %{HTTP_USER_AGENT} .*BatchFTP* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Bullseye* [OR]
RewriteCond %{HTTP_USER_AGENT} .*bumblebee* [OR]
RewriteCond %{HTTP_USER_AGENT} .*capture* [OR]
RewriteCond %{HTTP_USER_AGENT} .*CherryPicker* [OR]
RewriteCond %{HTTP_USER_AGENT} .*CherryPickrElite* [OR]
RewriteCond %{HTTP_USER_AGENT} .*CherryPickerSE* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ChinaClaw* [OR]
RewriteCond %{HTTP_USER_AGENT} .*clipping* [OR]
RewriteCond %{HTTP_USER_AGENT} .*collage* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Collector* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Copier* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*Crescent* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*Download* [OR]
RewriteCond %{HTTP_USER_AGENT} .*eCatch* [OR]
RewriteCond %{HTTP_USER_AGENT} .*EirGrabber* [OR]
RewriteCond %{HTTP_USER_AGENT} .*email* [OR]
RewriteCond %{HTTP_USER_AGENT} .*EmeraldShield* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*FlashGet* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*FlickBot* [OR]
RewriteCond %{HTTP_USER_AGENT} .*FrontPage* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*GetRight* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*GetSmart* [OR]
RewriteCond %{HTTP_USER_AGENT} .*GetWeb* [OR]
RewriteCond %{HTTP_USER_AGENT} .*GetWebPage* [OR]
RewriteCond %{HTTP_USER_AGENT} .*gigabaz* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Go!Zilla* [OR]
RewriteCond %{HTTP_USER_AGENT} .*GornKer* [OR]
RewriteCond %{HTTP_USER_AGENT} .*gotit* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Grabber* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*GrabNet* [OR]
RewriteCond %{HTTP_USER_AGENT} .*hloader* [OR]
RewriteCond %{HTTP_USER_AGENT} .*httpdown* [OR]
RewriteCond %{HTTP_USER_AGENT} .*InterGET* [OR]
RewriteCond %{HTTP_USER_AGENT} .*JustView* [OR]
RewriteCond %{HTTP_USER_AGENT} .*kapere* [OR]
RewriteCond %{HTTP_USER_AGENT} .*larbin* [OR]
RewriteCond %{HTTP_USER_AGENT} .*LeechFTP* [OR]
RewriteCond %{HTTP_USER_AGENT} .*LexiBot* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Missigua* [OR]
RewriteCond %{HTTP_USER_AGENT} .*MSIECrawler* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Vampire* [OR]
RewriteCond %{HTTP_USER_AGENT} .*NetAnts* [OR]
RewriteCond %{HTTP_USER_AGENT} .*NetMechanic* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Openfind* [OR]
RewriteCond %{HTTP_USER_AGENT} .*PageGrabber* [OR]
RewriteCond %{HTTP_USER_AGENT} .*pavuk* [OR]
RewriteCond %{HTTP_USER_AGENT} .*pcBrowser* [OR]
RewriteCond %{HTTP_USER_AGENT} .*PersonaPilot* [OR]
RewriteCond %{HTTP_USER_AGENT} .*PingALink* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Python-urllib* [OR]
RewriteCond %{HTTP_USER_AGENT} .*PycURL* [OR]
RewriteCond %{HTTP_USER_AGENT} .*RealDownload* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Reaper* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Recorder* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ReGet* [OR]
RewriteCond %{HTTP_USER_AGENT} .*replacer* [OR]
RewriteCond %{HTTP_USER_AGENT} .*SearchExpress* [OR]
RewriteCond %{HTTP_USER_AGENT} .*SlySearch* [OR]
RewriteCond %{HTTP_USER_AGENT} .*SmartDownload* [OR]
RewriteCond %{HTTP_USER_AGENT} .*snagger* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Snake* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Stripper* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Sucker* [OR]
RewriteCond %{HTTP_USER_AGENT} .*SuperBot* [OR]
RewriteCond %{HTTP_USER_AGENT} .*SuperHTTP* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Surfbot* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Syntryx* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Teleport* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Telesoft* [OR]
RewriteCond %{HTTP_USER_AGENT} .*NetSpider* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebAuto* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebBandit* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebCapture* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Webclipping* [OR]
RewriteCond %{HTTP_USER_AGENT} .*webcollage* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebCopier* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebEMailExtrac* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebFetch* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebIndexer* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebLeacher* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebMiner* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebMirror* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebReaper* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebSauger* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Website* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Webster* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebStripper* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebWhacker* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebZIP* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Wget* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Whacker* [OR]
RewriteCond %{HTTP_USER_AGENT} .*whizbang* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Xenu*
RewriteRule .* - [F]

Voir aussi: La gestion d’un site avec .htaccess et ses fonctions de bases incontournables

7 thoughts on “Comment bloquer les spam bots et aspirateurs de site web par leur User Agent avec .htaccess

  1. Salut Me, bien sur que non, j’utilise cette liste moi-même et je n’ai aucun problèmes avec les moteurs de recherche.

  2. est ce qu’on pourrai pas faire autrement, au lieu de mettre une liste qu’on ne connaitra jamais la fin, on autorise seulement ceux qui sont connu, google, msn, alexa, yahoo, ask et point

  3. Ce code ne marche pas sur mon site.
    une foix que je met le fichier .htaccess le site n’est plus axe cible, es que c’est a cause de mon hébergeur free ? (incompatible avec mql) ?

  4. oui moi aussi chez free cela bloque tout même sans l’ouverture et fermeture des syntaxes.

  5. une question ? si je veux empêcher google de lire mon site web avec htaccess, est ce qu’il y a une méthode ?
    (bien sure je parle pas de faire un mot de passe avec htpassword)

  6. Pour bloquer les visites depuis Google, bing… A placer dans le htaccess :
    ———–
    SetEnvIfNoCase Referer « .*(google|bing|yahoo|dmoz|picsearch|voila|altavista|ask|alexa|ixquick).* » spammer=yes
    Order allow,deny
    allow from all
    deny from env=spammer
    ————-

    Vous pouvez remplacer : « google|bing|yahoo|dmoz|picsearch|voila|altavista|ask|alexa|ixquick »
    par ce que vous voulez, exemple un site qui vous référence alors que vous ne le souhaitez pas.

    Attention : Votre site ne sera plus accessible depuis ces moteurs.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *