web-dev-qa-db-fra.com

Pourquoi Yahoo bot frappe-t-il une page lorsque mon fichier robots.txt est configuré pour interdire tous les robots?

Mon fichier robots.txt:

User-agent: *
Disallow: /

Une page deux répertoires sous la racine est frappé par un bot Yahoo et obtient un 404:

HTTP_REFERER: [empty string]
HTTP_USER_AGENT: Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/Slurp) NOT Firefox/3.5
QUERY_STRING: [empty string]
REMOTE_ADDR: 98.137.206.112
REMOTE_Host: 98.137.206.112
REMOTE_USER: [empty string]
REQUEST_METHOD: GET

Comment est-ce possible et comment puis-je empêcher cela?

WHOIS pour 98.137.206.112

1
Eric Belair

Un fichier robots.txt fournit des instructions aux robots sur la manière dont vous voudriez qu'ils se comportent. La plupart des robots d'exploration réputés essaient de les suivre, mais cela n'a aucun effet sur votre serveur pour forcer les robots à les suivre.

Généralement, si un robot d'exploration ne suit pas votre fichier de robots, cela indique soit qu'il s'agit d'un robot grossier, peut-être même en envoyant un agent utilisateur se faisant passer pour quelqu'un d'autre, soit qu'il s'agit d'un robot légitime réputé qui n'a pas vu de fichier de robots récemment mis à jour. Dans ce cas, il semble que l'adresse IP source appartient réellement à l'agent indiqué, et je m'attendrais généralement à ce que Yahoo! suivre les directives des robots.

Donc, sans plus d'informations, je suppose que vous avez récemment mis à jour robots.txt pour bloquer tous les agents et Yahoo! n'a pas exploré votre fichier robots.txt depuis cette mise à jour, mais je m'attends à ce qu'il le fasse dans quelques heures ou quelques jours et commence à suivre les instructions en conséquence.

Cependant, que mes hypothèses soient correctes ou non, si vous voulez forcer le blocage des robots, quelle que soit leur gentillesse, vous devriez examiner d'autres méthodes telles que htaccess .

Notez également que, sauf si vous avez une raison spécifique, il n'est généralement pas recommandé de bloquer aveuglément les robots d'exploration provenant d'un site Web public, car des robots comme Google, Bing ou Yahoo peuvent indexer votre site et vous envoyer potentiellement beaucoup de trafic.

2
joshuahedlund

En plus de rechercher le whois pour l'adresse IP, Yahoo a une procédure pour vérifier Slurp :

  1. Pour chaque demande d'affichage de page, vérifiez l'agent utilisateur et l'adresse IP. Toutes les demandes de Yahoo! La recherche utilise un agent utilisateur commençant par ‘Yahoo! Slurp.'
  2. Pour chaque demande de ‘Yahoo! Slurp ’user-agent, vous pouvez commencer par l’adresse IP (74.6.67.218) et utiliser la recherche DNS inversée pour trouver le nom enregistré de la machine.
  3. Une fois que vous avez le nom d'hôte (dans ce cas, lj612134.crawl.yahoo.net), vous pouvez alors vérifier s'il provient vraiment de Yahoo! Chercher. Le nom de tous Yahoo! Les robots de recherche se termineront par "crawl.yahoo.net", donc si le nom ne se termine pas par cela, vous savez que ce n'est pas vraiment notre robot.
  4. Enfin, vous devez vérifier que le nom est exact. Pour ce faire, vous pouvez utiliser Forward DNS pour voir l'adresse IP associée au nom d'hôte. Cela doit correspondre à l'adresse IP que vous avez utilisée à l'étape 2. Si ce n'est pas le cas, cela signifie que le nom était faux.

Suite à cette procédure:

$ Host 98.137.206.112
112.206.137.98.in-addr.arpa domain name pointer h174.hlfs.bf1.yahoo.com.
$ ping h174.hlfs.bf1.yahoo.com
PING h174.hlfs.bf1.yahoo.com (98.137.206.112) 56(84) bytes of data.

Ce qui vérifie que Yahoo contrôle effectivement l'adresse IP et que la demande adressée à votre site Web est une demande valide de Yahoo Slurp.

Yahoo est généralement un bot très sage qui suit le fichier robots.txt.

0
Stephen Ostermiller