1 Introduction
Votre site n'est plus lu seulement par des humains et des moteurs de recherche. Les entreprises d'IA l'explorent pour entraîner leurs modèles et répondre aux questions, les assistants récupèrent vos pages quand un utilisateur pose une question sur vous, et les agents IA cherchent des outils qu'ils peuvent appeler. Quelques fichiers et endpoints décident de ce qu'ils peuvent lire, et de ce qu'ils peuvent faire.
La section AI & agents d'un scan de domaine les regroupe en quatre blocs : llms.txt (un guide que vous proposez aux modèles de langage), la politique d'exploration IA (ce que votre robots.txt autorise à chaque robot d'IA), les fichiers de découverte d'agents, et tout serveur MCP annoncé par votre domaine. L'essentiel relève du choix. Un point est un vrai problème de sécurité : un serveur MCP qui répond à n'importe qui, sans authentification.
15
Robots d'IA connus que le scan confronte à votre robots.txt
2024
Anthropic publie le Model Context Protocol (MCP)
Art. 4
Directive UE 2019/790 : l'opposition à la fouille de textes et de données doit être lisible par machine
2 Comment ça marche
Chaque bloc répond à une question. Le scan lit des fichiers publics en HTTPS et, seulement si votre domaine annonce un serveur MCP, lui parle avec le protocole lui-même.
Que dites-vous à l'IA ?
llms.txt et fichiers de découverte d'agents : ce que vous avez choisi de présenter aux modèles et aux agents, et s'ils laissent fuiter des URL internes.
Que peut lire l'IA ?
Les règles robots.txt par robot, Content-Signal, et la réserve européenne de fouille de textes et de données dans tdmrep.json.
Que peut faire l'IA ?
Les serveurs MCP : quels outils un agent peut appeler, si un jeton est exigé, et si ces outils modifient des données.
Politique ou sécurité
Bloquer ou autoriser les robots d'IA est une décision métier, pas une vulnérabilité : le scan la remonte en info, sans effet sur votre score. Deux choses sont différentes. Des URL internes annoncées dans llms.txt (medium), et un serveur MCP qui laisse n'importe qui appeler des outils qui modifient des données, ou qui porte des instructions cachées pour le modèle (high). Ce sont les constats à traiter en premier.
3 Analyse détaillée
llms.txt : un plan pour les modèles de langage
/llms.txt est un fichier markdown qui indique aux modèles de langage quelles pages de votre site comptent, avec un court résumé. C'est une proposition communautaire (llmstxt.org), pas un standard IETF ou W3C, et aucun acteur de l'IA n'est tenu de le lire. Un fichier compagnon, /llms-full.txt, contient parfois tout le contenu d'un bloc.
# Example SAS
> Logiciel de facturation pour les TPE.
## Documentation
- [Démarrer](https://example.fr/docs/demarrer): créer un compte
- [Référence API](https://example.fr/docs/api)
Pas de llms.txt, aucun souci
Son absence n'est pas une faiblesse et le scan ne la signale pas. N'en publiez un que si vous voulez orienter la façon dont les modèles présentent votre site.
Ce que le scan remonte
Titre, résumé, sections, nombre de liens (dont externes), et présence de llms-full.txt. Il lève un constat medium quand un lien pointe vers une URL d'administration ou interne : des chemins comme /admin, /wp-admin, /.env, /.git, phpmyadmin, grafana, jenkins, ou des hôtes comme staging. et internal.. Les fichiers générés automatiquement les ramassent facilement : retirez-les.
Politique d'exploration IA : robots.txt, Content-Signal et TDMRep
Les robots d'IA s'annoncent par un nom de user-agent et, chez les grands acteurs, respectent robots.txt. Ils font trois métiers : entraînement (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, Bytespider, meta-externalagent, Amazonbot), recherche IA (OAI-SearchBot, Claude-SearchBot, PerplexityBot) et récupération à la demande d'un utilisateur (ChatGPT-User, Claude-User, Perplexity-User, MistralAI-User). Vous pouvez les traiter différemment. Pour refuser l'entraînement tout en restant visible dans la recherche IA :
# Refuser l'entraînement des modèles
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
Disallow: /
# Tous les autres, y compris recherche IA et requêtes utilisateur
User-agent: *
Disallow: /panier/
Comment le scan le lit
Pour chaque robot : Blocked (Disallow: / sans Allow: /), Partly (certains chemins interdits) ou Allowed, et s'il a sa propre règle ou relève de User-agent: *. Sans robots.txt, tous les robots sont autorisés par défaut.
Google-Extended et Applebot-Extended sont des jetons
Ils n'explorent rien eux-mêmes. Ils indiquent à Google et Apple si le contenu récupéré par leurs robots habituels peut servir à l'IA. Les bloquer ne vous retire pas de Google Search ni des fonctions de recherche d'Apple.
Content-Signal
Une ligne robots.txt plus récente, proposée par Cloudflare, qui dit à quoi le contenu peut servir : Content-Signal: search=yes, ai-input=yes, ai-train=no. Le scan affiche chaque signal en yes, no ou unset. Comme le reste de robots.txt, c'est une déclaration que les robots choisissent de respecter.
TDMRep : l'opt-out européen
Dans l'UE, la fouille de textes et de données (TDM) sur du contenu public est permise, sauf si le titulaire des droits s'y oppose « de manière appropriée », par des procédés lisibles par machine (directive 2019/790, article 4, transposé en France dans le Code de la propriété intellectuelle). Le TDM Reservation Protocol (une spécification de groupe communautaire W3C) le fait via /.well-known/tdmrep.json. Le scan indique si le fichier existe et s'il réserve les droits (tdm-reservation à 1).
[
{ "location": "/", "tdm-reservation": 1, "tdm-policy": "https://example.fr/tdm-policy.json" }
]
Fichiers de découverte d'agents
Les agents cherchent des descriptions lisibles par machine de ce que propose votre domaine. Le scan vérifie :
Carte d'agent A2A
/.well-known/agent-card.json (ou l'ancien agent.json) : un agent que vous exploitez, son endpoint, ses compétences et ses schémas de sécurité. Le rapport affiche « no security scheme declared » quand la carte n'en liste aucun : vérifiez que l'endpoint exige bien une authentification.
Cartes de serveur MCP et enregistrement TXT _mcp
/.well-known/mcp/server-card.json, /.well-known/mcp.json, /.well-known/mcp-server, ou un TXT _mcp dans le DNS. Ces conventions sont encore en train d'émerger. Une carte qui annonce un endpoint qui ne répond pas comme un serveur MCP est signalée en low : supprimez les cartes périmées.
Manifeste de plugin ChatGPT
/.well-known/ai-plugin.json appartient à une plateforme de plugins qu'OpenAI a arrêtée en 2024. S'il est encore là, il est signalé en low : supprimez-le, ainsi que la spécification d'API qu'il référence si rien d'autre ne s'en sert.
Serveurs MCP exposés
Le Model Context Protocol permet à un agent IA de se connecter à un serveur et d'appeler ses outils (des fonctions comme « chercher une commande » ou « créer un ticket »), de lire ses ressources et d'utiliser ses prompts. Un serveur MCP joignable depuis internet est une API pour agents, et mérite la même protection que n'importe quelle API.
Le scan ne se connecte que là où votre domaine annonce un serveur (une carte, un enregistrement _mcp, un lien dans llms.txt, ou un hôte nommé mcp.*), jamais en devinant des chemins. Il envoie initialize, liste les outils, ressources et prompts, et n'appelle jamais aucun outil.
Authentification exigée : le bon cas
Le serveur refuse de lister quoi que ce soit sans jeton. Le rapport montre alors ce qu'il publie pour en obtenir un : serveur d'autorisation, scopes, mode d'enregistrement des clients (enregistrement dynamique selon la RFC 7591, document de métadonnées client, ou clients préenregistrés uniquement). La spécification MCP s'appuie pour cela sur OAuth.
Ouvert, avec des outils qui modifient des données (high)
N'importe qui sur internet, humain ou agent, peut appeler des outils qui écrivent, envoient, suppriment ou déploient. Le scan classe les outils d'après leurs annotations et leurs noms (delete, create, send, exec, transfer...). Traitez-le comme une API d'administration sans authentification.
Empoisonnement d'outils, ou tool poisoning (high)
Le modèle lit les descriptions d'outils comme une partie de son contexte. Quand une description contient des instructions qui lui sont adressées, tout agent qui charge le serveur peut être manipulé. Vérifiez que personne n'a modifié vos descriptions et qu'elles viennent de votre code, pas de données saisies par des utilisateurs.
Ouvert en lecture seule (info), ou en HTTP simple (medium)
Un serveur public en lecture seule peut être voulu (recherche dans une documentation publique). Assurez-vous qu'il ne renvoie vraiment que des données publiques. Un serveur en http:// fait transiter jetons et réponses en clair : passez-le en HTTPS.
Ordre de correction pour un serveur ouvert : exigez une authentification (ou coupez-le) aujourd'hui, puis passez en revue chaque outil qui modifie des données, réduisez les droits des jetons au minimum et journalisez chaque appel. Les services exposés en général sont traités dans vulnérabilités exposées.
Vérifiez votre domaine sur mlab.sh
Un scan de domaine lit votre llms.txt, vos règles pour les robots d'IA et votre fichier TDMRep, vos fichiers de découverte d'agents, et inspecte tout serveur MCP annoncé sans appeler un seul outil.
Scanner votre domaine sur mlab.sh4 Red Flags
Un serveur MCP ouvert à tous, avec des outils qui écrivent ou suppriment
Le constat le plus urgent de cette section. Exigez une authentification ou coupez le serveur avant toute autre chose.
Des descriptions d'outils qui s'adressent au modèle
« Ignore previous instructions », une fausse balise <system>, « ne le dis pas à l'utilisateur », l'ordre de lire ~/.ssh ou .env, ou des caractères Unicode invisibles : le scan signale tout cela comme du tool poisoning. Cherchez comment c'est arrivé là.
Des liens admin, préprod ou internes dans llms.txt
Vous remettez à chaque modèle une liste de points d'entrée internes. Régénérez le fichier à partir des seules pages publiques.
Une carte d'agent sans schéma de sécurité
Soit l'endpoint de l'agent est ouvert, soit la carte est incomplète. Vérifiez lequel, et déclarez l'authentification utilisée.
Une politique d'exploration que personne n'a choisie
Ce n'est pas une vulnérabilité, mais si le scan montre tous les robots d'IA autorisés (ou bloqués) sans que personne l'ait décidé, tranchez avec vos équipes juridique et marketing, puis écrivez-le dans robots.txt.
Modules connexes
security.txt, robots.txt et endpoints well-known
Publier un contact sécurité avec la RFC 9116, comprendre ce qu'expose /.well-known/, et pourquoi robots.txt ne protège rien.
Scripts tiers et supply chain côté navigateur
Chaque script externe chargé par votre site s'exécute avec la confiance de vos visiteurs. Risques supply chain, SRI et auto-hébergement.
Comment lire un rapport de scan de domaine
Score, note, sévérités et sections du rapport : lire un scan de domaine mlab.sh et savoir quoi corriger en premier.
Source : mlab Academy — Plateforme de sensibilisation à la cybersécurité
URL : https://academy.mlab.sh/fr-FR/page/surface-ia
Module : Votre domaine face à l'IA : llms.txt, crawlers, MCP — Sécuriser son domaine
Avertissement : Ce contenu est à des fins de sensibilisation uniquement.