Beveiliging van de WebMCP-tool

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Gepubliceerd: 9 juni 2026

Je kunt het Web Model Context Protocol ( WebMCP ) gebruiken om gestructureerde tools te bouwen en beschikbaar te stellen aan AI-agenten die in de browser draaien, inclusief agenten die worden aangestuurd door extensies. Een agent gebruikt een groot taalmodel (LLM), regels, geheugen en tools om namens de gebruiker acties uit te voeren.

Omdat LLM's alle tekst, instructies en gebruikersgegevens als één enkele reeks tokens behandelen, zijn ze vatbaar voor indirecte promptinjectie , oftewel het toevoegen van kwaadaardige instructies door een aanvaller. Ons team heeft dit document over toolbeveiliging geschreven om u te helpen uw website en uw gebruikers te beschermen tegen kwaadwillenden.

Hoewel sommige modellen lagen bevatten die promptinjectie tegengaan, is het onmogelijk om de veiligheid binnen een groot taalmodel (LLM) te garanderen. Modellen zijn van nature probabilistisch. Het is belangrijk om te onthouden dat er herhaalde promptinjectieaanvallen zijn uitgevoerd op agentsystemen die gebruikmaken van geavanceerde LLM's, en dat het aantal aanvallen op het web toeneemt.

Om deze zorgen weg te nemen, hebben we voorlopige richtlijnen opgesteld voor de beveiliging van tools die met WebMCP worden ontwikkeld.

Gebruik annotatiehints

Er zijn een paar tips die je kunt toevoegen bij het ontwikkelen van je tools:

  • Gebruik untrustedContentHint waar nodig . Als een tool door gebruikers gegenereerde content (UGC) of extern verkregen data retourneert, overweeg dan om untrustedContentHint aan de tool toe te voegen. Dit veld labelt de payload expliciet als onbetrouwbaar, wat helpt om de integriteit van uw site te beschermen en tegelijkertijd de agent een signaal geeft dat deze data extra aandacht vereist.
  • Gebruik de readOnlyHint voor tools die niet van status veranderen. Hierdoor kan de agent betere beslissingen nemen over wanneer er om gebruikersbevestigingen gevraagd moet worden.

Leg je gereedschap voorzichtig neer

De WebMCP document.modelContext.registerTool API stelt de functionaliteit van de tool alleen beschikbaar aan agents. Standaard kunnen andere websites of cross-origin iframes uw tools niet waarnemen of ermee interageren.

Met de exposedTo optie in registerTool kunt u toegang tot uw tool verlenen aan een reeks specifieke, beveiligde bronnen. Hierdoor wordt uw tool beschikbaar gesteld aan die bronnen wanneer deze is ingesloten op uw site, en wanneer uw site is ingesloten op die bron.

// https://partner.org

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

Stel uw tools alleen beschikbaar aan bronnen die u vertrouwt. Dit is met name belangrijk wanneer tools gebruikersgegevens beheren of op een andere manier invloed hebben op de gebruiker.

  • Een tool die alleen leesrechten heeft, zoals getFavoriteProducts , kan informatie over een gebruiker onthullen. U moet deze tools alleen beschikbaar stellen aan websites waarmee u deze gegevens anders ook rechtstreeks zou delen.
  • Tools met lees- en schrijftoegang voeren acties uit namens een gebruiker. Deze tools mogen alleen beschikbaar worden gesteld aan bronnen die u vertrouwt wanneer ze namens uw gebruiker handelen. U wilt bijvoorbeeld postComment mogelijk beschikbaar stellen aan trustedExample.com , maar niet aan evilExample.com .

Stel budgetten voor personages vast

Om te voorkomen dat u tegen beperkingen van de agent aanloopt, schrijft u beknopte beschrijvingen van tools en uitvoer. We raden de volgende tekenlimieten aan voor betere resultaten:

  • 500 tekens per toolbeschrijving
  • 150 tekens per parameterbeschrijving
  • Maximaal 30 tekens per gereedschapsnaam en parameternaam.
  • Limiet van 1500 tekens per uitvoer van een individuele tool.

Het is waarschijnlijk dat er enige variatie is tussen de verschillende agenten, en het kan verstandig zijn om je personagebudgetten aan te passen op basis van feedback van gebruikers.

Volgende stappen

We blijven onderzoek doen en werken aan de ontwikkeling van een veilige infrastructuur voor het agentische web. Zo is er bijvoorbeeld een doorlopende discussie over het beheer van toestemmingen tussen verschillende partijen, en het concept van de specificatie bevat requestUserInteraction() om asynchroon gebruikersinvoer op te vragen tijdens de uitvoering van de tool.

Hoe bent u van plan WebMCP in uw applicatie te implementeren? Heeft u nog andere aandachtspunten, bijvoorbeeld op het gebied van beveiliging? Als u zich aanmeldt voor de WebMCP Origin-proefversie, horen we graag meer over uw ervaring:

Als u een agent bouwt, raden we u aan de beveiligingsrichtlijnen voor agenten in WebMCP te lezen.