Sécurité de l'outil WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Publié le 9 juin 2026

Présentateur Web Extensions État de Chrome Intention
GitHub Essai Origin Trial Version d'essai Origin Afficher Intention de tester

Vous pouvez utiliser le protocole Web Model Context (WebMCP) pour créer et exposer des outils structurés aux agents d'IA s'exécutant dans le navigateur, y compris les agents optimisés par des extensions. Un agent utilise un grand modèle de langage (LLM), des règles, de la mémoire et des outils pour exécuter des actions au nom de l'utilisateur.

Les LLM traitent tous les textes, instructions et données utilisateur comme une seule séquence de jetons. Ils sont donc sensibles à l'injection de code indirecte, qui consiste à inclure des instructions malveillantes par un pirate informatique. Notre équipe a rédigé ce document sur la sécurité des outils pour vous aider à protéger votre site Web et vos utilisateurs contre les acteurs malintentionnés.

Bien que certains modèles comportent des couches qui traitent l'injection de prompt, il est impossible de garantir la sécurité à l'intérieur d'un grand modèle de langage (LLM). Les modèles sont de nature probabiliste. Il est important de se rappeler qu'il y a eu des attaques par injection de requêtes répétables contre des systèmes agentifs qui utilisent des LLM de pointe, et que la prévalence des attaques sur le Web augmente.

Pour répondre à ces préoccupations, nous avons fourni des conseils préliminaires sur la sécurité pour ceux qui créent des outils avec WebMCP.

Utiliser les suggestions d'annotations

Voici quelques conseils à suivre lorsque vous créez vos outils :

  • Utilisez untrustedContentHint le cas échéant. Si un outil renvoie du contenu généré par les utilisateurs (CGU) ou des données provenant de sources externes, envisagez d'ajouter untrustedContentHint à l'outil. Ce champ indique explicitement que la charge utile n'est pas fiable, ce qui permet de protéger l'intégrité de votre site tout en signalant à l'agent que ces données nécessitent une surveillance accrue.
  • Utilisez readOnlyHint sur les outils qui ne changent pas d'état. Cela permet à l'agent de prendre de meilleures décisions quant au moment où demander des confirmations à l'utilisateur.

Exposez vos outils avec précaution

L'API WebMCP document.modelContext.registerTool n'expose que les fonctionnalités de l'outil aux agents. Par défaut, les autres sites Web ou les iFrames d'origine croisée ne peuvent pas observer vos outils ni interagir avec eux.

Vous pouvez fournir l'accès à votre outil avec l'option exposedTo dans registerTool à un éventail d'origines spécifiques et sécurisées. Votre outil est alors exposé à ces origines lorsqu'il est intégré à votre site et lorsque votre site est intégré à cette origine.

// https://partner.org

document.modelContext.registerTool({
  name: 'my_shared_tool',
  description: 'Shared across origins',
  // ...
}, {
  exposedTo: ['https://trusted.com', 'https://example.com']
});

N'exposez vos outils qu'aux origines auxquelles vous faites confiance. Cela est particulièrement important lorsque les outils gèrent des données utilisateur ou ont un impact sur l'utilisateur.

  • Un outil en lecture seule, tel que getFavoriteProducts, peut révéler des informations sur un utilisateur. Vous ne devez exposer ces outils qu'aux sites Web avec lesquels vous partageriez directement ces données.
  • Les outils disposant d'un accès en lecture et en écriture agissent au nom d'un utilisateur. Ces outils ne doivent être exposés qu'aux origines que vous jugez fiables lorsqu'elles agissent au nom de votre utilisateur. Par exemple, vous pouvez vouloir exposer postComment à trustedExample.com, mais pas à evilExample.com.

Définir des budgets de personnages

Pour éviter de rencontrer des limites de protection des agents, rédigez des descriptions et des résultats d'outils concis. Pour de meilleurs résultats, nous vous recommandons les limites de caractères suivantes :

  • 500 caractères par description d'outil
  • 150 caractères par description de paramètre
  • 30 caractères par nom d'outil et de paramètre
  • Limite de 1 500 caractères par résultat d'outil

Il est probable qu'il existe une certaine variation entre les agents. Vous pouvez ajuster vos budgets de caractères en fonction des commentaires des utilisateurs.

Étapes suivantes

Nous continuons nos recherches et nos efforts pour créer une infrastructure sécurisée pour le Web agentique. Par exemple, une discussion sur la gestion du consentement est en cours entre les parties, et le brouillon de spécification inclut requestUserInteraction() pour demander de manière asynchrone l'entrée utilisateur lors de l'exécution de l'outil.

Comment prévoyez-vous d'implémenter WebMCP dans votre application ? Avez-vous d'autres préoccupations, concernant la sécurité ou autre ? Si vous vous inscrivez à l'essai Origin Trial WebMCP, nous aimerions connaître votre expérience :

Si vous créez un agent, nous vous recommandons de lire Considérations de sécurité pour les agents WebMCP.