web-dev-qa-db-fra.com

Comment bloquer les araignées baidu

La plupart de mes visites sont des araignées baidu. Je ne pense pas que cela aide les moteurs de recherche, alors je réfléchis à la façon de les bloquer. Cela pourrait-il être fait via iptables? J'utilise nginx comme serveur web.

15
Zhianc

Dans votre fichier robots.txt, ajoutez

#Baiduspider
User-agent: Baiduspider
Disallow: /

#Yandex
User-agent: Yandex
Disallow: /
8
Anagio

Je viens de bloquer avec succès le moteur de recherche chinois Baiduspider d'accéder à tout contenu de mon site. J'ai pris la décision de le faire pour les raisons suivantes.

Raisons de la décision de bloquer

  1. Environ toutes les 20 requêtes adressées à mon serveur provenaient d'un bot baidu. C'est un comportement impoli. Baidubot représente 5% de l'utilisation de la bande passante par mes sites.
  2. Je fais beaucoup d’efforts pour que les ressources de mon site soient petites et exploitent des technologies telles que la mise en cache du navigateur afin de gagner de petits gains en vitesse et en bande passante. Il est logique d'envisager de libérer ces 5% en bloquant Baidubot.
  3. La possibilité de perdre du trafic en chinois constitue un risque acceptable pour l’entreprise, car le contenu du site est spécifique au Royaume-Uni, il n’existe pas de version en langue chinoise et les revenus proviennent de la publicité destinée au marché britannique.

J'espère donc que Su 'et les autres personnes préoccupées par la xénophobie comprendront que cette décision est une réponse sereine à un nombre impopulaire de demandes.

Méthode

Baiduspider accède à mon serveur en utilisant de nombreuses adresses IP différentes, mais ces adresses se situent dans certaines plages. Donc, mon fichier .htaccess contient maintenant les lignes suivantes:

order allow,deny 
allow from all
# Block access to Baiduspider 
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24 

La ligne de fond décrit en gros 4 plages d’IP dans lesquelles je sais que Baiduspider et UNIQUEMENT Baiduspider accède à mon serveur. Chacune des 4 plages correspond à 256 adresses consécutives (1024 au total). Veuillez noter que la syntaxe pour les plages IP sur la ligne deny from... peut être très déroutante si vous n'avez pas lu les plages CIDR. Il suffit de comprendre que le 0/24 signifie une plage de taille de 256 à partir de 0, donc 180.76.5.0/24 signifie en réalité toute adresse IP comprise entre 180.76.5.0 et 180.76.5.255. Ouais, pas particulièrement évident! Mais si vous voulez savoir pourquoi ou si vous aimez simplement être confus, allez à http://www.mediawiki.org/wiki/Help:Range_blocks

Résumé

Internet devrait être gratuit, ouvert et juste. Mais cela signifie que des organisations telles que Baidu apprennent à obéir à Robots.txt et sont moins avides de régularité. Ma solution implique de bricoler avec des paramètres très puissants. Par conséquent, avant de manipuler le fichier .htaccess, veillez à sauvegarder votre fichier d'origine, prêt à être annulé si votre serveur tombe en panne. Procédez à vos risques et périls.

7
Martin Joiner

Vous pouvez utiliser la directive suivante dans robots.txt pour interdire l’exploration de votre site.

# robots.txt
User-agent: Baiduspider
Disallow: /

Cependant, les robots peuvent décident d’ignorer le contenu de votre fichier robots.txt. De plus, les moteurs de recherche peuvent mettre en cache le fichier et cela prend du temps avant que les modifications soient reflétées.

L'approche la plus efficace consiste à utiliser les fonctionnalités de votre serveur. Ajoutez la règle suivante à votre fichier nginx.conf pour bloquer Baidu au niveau du serveur.

if ($http_user_agent ~* ^Baiduspider) {
  return 403;
}

N'oubliez pas de redémarrer ou de recharger Nginx afin d'appliquer les modifications.

5
Simone Carletti

Vient de décider de bloquer Baidu car le trafic qu’il nous donnait était trop négligeable pour leur balayage agressif. En outre, ils exécutent maintenant un agent qui emprunte l'identité d'un navigateur, lance le code JavaScript (tel que Google Analytics) et fausse nos statistiques.

La version de Nice met à jour votre fichier robots.txt avec les éléments suivants

User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /

Mais considérant ce que d'autres ont écrit ici et les utilisant un agent utilisateur qui cache leur présence, je bloquerais complètement leurs adresses IP. Voici comment cela se passe dans nginx

# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;
3
Collector

Solution Wordpress (pas la meilleure mais aide)

Même problème avec l'araignée Biadu, cette agressive que ma boîte a classé plus de 35 dans ma console en utilisant top. Bien entendu, même un ordinateur rapide ne peut pas gérer efficacement les requêtes extérieures exécutées à 35 ...

J'ai tracé le nombre d'adresses IP (de cette université ????) à plusieurs centaines, avec principalement deux useragents)

Conséquence directe? En tant que serveur cloud, je devais mettre à niveau la même solution vers une mémoire plus importante afin de permettre une réponse décente.

Réponse précédente:

#Baiduspider
User-agent: Baiduspider
Disallow: /

Baidu semble totalement incapable de respecter l'indication robot.txt.

Ce que j'ai fait:

J'ai installé le plug-in WP-Ban pour Wordpress (gratuit) et interdit ce qui suit:

AGENTS UTILISATEUR:

  • Baiduspider+(+http://www.baidu.com/search/spider.htm)

  • Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

De plus, en utilisant Wp Super Cache, je redirige la page d'erreur relative vers une page statique. Ainsi, l'installation entière wordpress ne fonctionne pas/ou du moins uniquement pour les agents d'utilisateur interdits, vérifie la date de mise à jour Mysql.

(Ceci est le standard Wordpress blablabla, afin que tout le monde puisse installer un plug-in Wordpress, car aucun codage ou accès ftp n'est requis pour cette procédure)

Je suis d’accord avec tout le monde: Internet est gratuit, interdire qui que ce soit ou quoi que ce soit, c’est la dernière chose à faire, mais Baidoo me coûte aujourd’hui 40 USD de plus par mois, rien que pour créer une page Web écrite en portugais, et j’ai des doutes s’il en existe beaucoup de Chinois et de visiteurs capables de lire et de comprendre cette langue.

2
Claudio Klemp

Utilisez .htaccess avec

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .*  - [L,F]

"RewriteEngine On" vous permet d'analyser correctement les lignes suivantes. HTTP_USER_AGENT est la ligne où les araignées s'identifient. La condition est vraie si la ligne contient "MJ12bot" ou "Baidu". NC signifie "non sensible à la casse" et vous pouvez chaîner des conditions avec OR. La dernière ligne ne doit pas contenir "OU" ou la règle ne fonctionne pas.

Baidu est particulièrement méchant car il essaie de lire les entrées Wordpress ("fckeditor", "wp-content") pour lesquelles il n'a absolument aucune raison. MJ12bot est également l'une des mauvaises créatures.

La règle Réécrire signifie que bloquer l'araignée avec un code 403 Forbidden ([F]) pour accéder à tous les fichiers (. * Est une expression régulière pour tout fichier) et arrêter toute évaluation ultérieure ([L]) de htaccess.

1
Thorsten S.

Vous pouvez bloquer par adresse IP en utilisant le ngx_http_access_module de nginx. Pour bloquer une seule adresse IP, vous pouvez ajouter une ligne au fichier de configuration comme suit:

deny 12.34.567.1;

Pour bloquer une plage, utilisez la notation CIDR , telle que 12.34.567.1/24 pour le bloc de sous-réseau de 24 bits (sur 256 adresses IP), qui inclut l'adresse IP 12.34.567.1. Pour plus de détails, voir, par exemple, cette page .

1
mgkrebbs