Sicurezza dello strumento WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Pubblicato il 9 giugno 2026. Ultimo aggiornamento: 1° settembre 2026

Video esplicativo Web Estensioni Stato di Chrome Intenzione
GitHub Origin trial Origin trial Visualizza Intenzione di sperimentare

Puoi utilizzare il Model Context Protocol web (WebMCP) per creare ed esporre strumenti strutturati agli agenti AI in esecuzione nel browser, inclusi gli agenti basati su estensioni. Un agente utilizza un modello linguistico di grandi dimensioni (LLM), regole, memoria e strumenti per eseguire azioni per conto dell'utente.

Poiché i modelli LLM trattano tutto il testo, le istruzioni e i dati utente come una singola sequenza di token, sono soggetti all'indirect prompt injection, un'inclusione di istruzioni dannose da parte di un malintenzionato. Il nostro team ha scritto questo documento sulla sicurezza degli strumenti per aiutarti a proteggere il tuo sito web e i tuoi utenti da utenti malintenzionati.

Sebbene alcuni modelli abbiano livelli che gestiscono l'iniezione di prompt, è impossibile garantire la sicurezza all'interno di un modello linguistico di grandi dimensioni (LLM). I modelli sono probabilistici per natura. È importante ricordare che sono stati ripetuti attacchi di prompt injection contro sistemi agentici che utilizzano LLM allo stato dell'arte e la prevalenza di attacchi sul web è in aumento.

Per rispondere a queste preoccupazioni, abbiamo fornito indicazioni preliminari sulla sicurezza per chi crea strumenti con WebMCP.

Utilizzare i suggerimenti per le annotazioni

Quando crei i tuoi strumenti, devi aggiungere alcuni suggerimenti:

  • Utilizza untrustedContentHint ove opportuno. Se uno strumento restituisce contenuti generati dagli utenti o dati provenienti da fonti esterne, valuta la possibilità di aggiungere untrustedContentHint allo strumento. Questo campo etichetta esplicitamente il payload come non attendibile, per contribuire a proteggere l'integrità del tuo sito fornendo un segnale all'agente che indica che questi dati richiedono un controllo più approfondito.
  • Utilizza consequentialHint per azioni ad alto rischio o non reversibili. Se l'esecuzione di uno strumento comporta azioni significative, come la prenotazione di un viaggio o il trasferimento di denaro, imposta consequentialHint: true in modo che l'agente o il browser possa richiedere la conferma dell'utente prima dell'esecuzione.
  • Utilizza il readOnlyHint sugli strumenti che non cambiano stato. In questo modo, l'agente può prendere decisioni migliori su quando chiedere le conferme degli utenti.

Esporre gli strumenti con attenzione

L'API WebMCP document.modelContext.registerTool espone solo la funzionalità dello strumento agli agenti. Per impostazione predefinita, altri siti web o iframe multiorigine non possono osservare o interagire con i tuoi strumenti.

Puoi fornire l'accesso al tuo strumento con l'opzione exposedTo in registerTool a una serie di origini specifiche e sicure. In questo modo, lo strumento viene esposto a queste origini quando è incorporato nel tuo sito e quando il tuo sito è incorporato in quell'origine.

// https://partner.org

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

Esporre i tuoi strumenti solo a origini attendibili. Ciò è particolarmente importante quando gli strumenti gestiscono i dati degli utenti o influiscono in altro modo sull'utente.

  • Uno strumento di sola lettura, come getFavoriteProducts, può rivelare informazioni su un utente. Devi esporre questi strumenti solo ai siti web con cui altrimenti condivideresti direttamente questi dati.
  • Gli strumenti con accesso in lettura e scrittura agiscono per conto di un utente. Questi strumenti devono essere esposti solo alle origini che decidi di considerare attendibili quando agiscono per conto del tuo utente. Ad esempio, potresti voler esporre postComment a trustedExample.com, ma non a evilExample.com.

Impostare i budget dei caratteri

Per evitare di incorrere nelle misure di protezione degli agenti, scrivi descrizioni e output degli strumenti succinti. Per ottenere risultati migliori, consigliamo i seguenti limiti di caratteri:

  • 500 caratteri per descrizione dello strumento
  • 150 caratteri per descrizione del parametro
  • 30 caratteri per nome strumento e nome parametro
  • Limite di 1500 caratteri per l'output di ogni singolo strumento

È probabile che ci sia una certa variazione tra gli agenti e potresti voler modificare i budget dei caratteri in base al feedback degli utenti.

Passaggi successivi

Continuiamo a fare ricerche e a lavorare alla creazione di un'infrastruttura sicura per il web agentico. Ad esempio, è in corso una discussione sulla gestione del consenso tra le parti e la bozza delle specifiche include requestUserInteraction() per richiedere in modo asincrono l'input dell'utente durante l'esecuzione dello strumento.

Come prevedi di implementare WebMCP nella tua applicazione? Hai altri dubbi, di sicurezza o di altro tipo? Se ti registri alla prova dell'origine WebMCP, vogliamo conoscere la tua esperienza:

Se stai creando un agente, ti consigliamo di leggere Considerazioni sulla sicurezza degli agenti per WebMCP.