Le WordPress d'aujourd'hui, décodé pour les développeurs

SEO & GEO

Distinguer un vrai Googlebot d’un robot usurpé par résolution DNS inversée

Le user-agent « Googlebot » se falsifie en une ligne. La méthode fiable pour vérifier son authenticité tient en deux résolutions DNS successives.

Par WordPress Développement • 4 septembre 2022 • 4 min de lecture • Aucun commentaire
Distinguer un vrai Googlebot d'un robot usurpé par résolution DNS inversée

Pour vérifier Googlebot, effectuer une résolution DNS inversée, puis confirmer par une résolution DNS directe. Cette recommandation, formulée en ces termes dans la documentation officielle de Google consacrée à la vérification de Googlebot, résume la seule méthode fiable pour distinguer le robot d’indexation légitime d’un imposteur qui se contente de recopier sa chaîne de user-agent dans ses en-têtes HTTP.

Repérer dans les logs serveur des milliers de requêtes portant l’en-tête Googlebot/2.1 ne dit rien de leur provenance réelle. N’importe quel script écrit en quelques minutes peut envoyer ce même user-agent depuis une adresse IP qui n’appartient à aucune plage Google, dans l’espoir de forcer l’accès à des sections normalement filtrées ou de moissonner du contenu sans se faire bloquer par un pare-feu applicatif.

Pourquoi le user-agent ne prouve rien

Le protocole HTTP laisse le client entièrement libre de la valeur qu’il place dans l’en-tête User-Agent. Aucune vérification cryptographique n’accompagne ce champ : il s’agit d’une simple déclaration, au même titre qu’un visiteur qui inscrirait n’importe quel nom sur un registre d’accueil. Se fier uniquement à cette chaîne pour accorder un traitement de faveur — bypass de cache, accès prioritaire, exemption de limitation de débit — revient à ouvrir une porte sur simple déclaration verbale.

Certains robots malveillants exploitent précisément cette confiance : en se faisant passer pour Googlebot, ils espèrent que les protections anti-scraping, souvent configurées pour laisser passer les moteurs de recherche légitimes, les laisseront eux aussi filer sans contrôle.

La méthode en deux résolutions

L'essentiel à retenir : Le user-agent seul ne prouve rien ; La double résolution DNS confirme l'origine réelle ; Cette vérification se scripte en quelques lignes bash

La vérification recommandée par Google se déroule en deux temps distincts, tous deux nécessaires :

  1. Une résolution DNS inversée sur l’adresse IP source de la requête, avec gethostbyaddr() en PHP ou la commande host en bash, qui doit renvoyer un nom de domaine se terminant par .googlebot.com ou .google.com.
  2. Une résolution DNS directe sur ce nom de domaine obtenu, avec gethostbyname() ou de nouveau host, qui doit renvoyer exactement l’adresse IP de départ.

Si l’une des deux étapes échoue ou ne correspond pas, l’adresse n’appartient pas à Google, quel que soit le user-agent affiché. Cette double étape empêche un attaquant de configurer un simple enregistrement PTR mensonger sur son propre serveur DNS : la résolution directe, elle, révèle l’incohérence.

Scripter la vérification en bash

Sur un accès SSH à l’hébergement, la vérification manuelle d’une adresse suspecte tient en deux commandes :

host 66.249.66.1
# renvoie un nom du type crawl-66-249-66-1.googlebot.com

host crawl-66-249-66-1.googlebot.com
# doit renvoyer exactement 66.249.66.1

Pour un traitement automatisé sur un volume de logs plus important, un script shell parcourant les adresses distinctes ayant envoyé le user-agent Googlebot évite d’examiner chaque ligne à la main :

for ip in $(grep 'Googlebot' access.log | awk '{print $1}' | sort -u); do
  host_name=$(host "$ip" | awk '/pointer/ {print $NF}' | sed 's/\.$//')
  if [[ "$host_name" == *.googlebot.com || "$host_name" == *.google.com ]]; then
    resolved=$(host "$host_name" | awk '/has address/ {print $NF}')
    [[ "$resolved" == "$ip" ]] && echo "$ip : confirmé" || echo "$ip : SUSPECT"
  else
    echo "$ip : SUSPECT (pas de PTR Google)"
  fi
done

Que faire des adresses non confirmées

Une adresse qui échoue à cette vérification n’est pas nécessairement malveillante : elle peut appartenir à un outil d’audit SEO tiers configuré pour imiter Googlebot, une pratique fréquente mais discutable. Elle mérite en tout cas un traitement différent de celui réservé au vrai robot, sans excès de sévérité immédiate — un ralentissement du débit autorisé suffit souvent avant d’envisager un blocage complet.

Un en-tête HTTP se déclare ; une résolution DNS se vérifie. Ne jamais confondre les deux quand un accès privilégié est en jeu.

En résumé

La vérification en deux résolutions DNS reste la seule preuve solide qu’une requête provient réellement d’un serveur Google. Elle demande peu de ressources, s’automatise facilement dans un script shell existant, et évite de traiter comme prioritaire un robot qui n’a de Googlebot que le nom qu’il a bien voulu se donner.

Laisser un commentaire

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

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi