Bezpieczeństwo narzędzia WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Opublikowano: 9 czerwca 2026 r., ostatnia aktualizacja: 1 września 2026 r.

Film z wyjaśnieniem Sieć Rozszerzenia Stan Chrome Intencja
GitHub Testowanie origin Testowanie origin Wyświetl Zamiar przeprowadzenia eksperymentu

Możesz używać protokołu Model Context Protocol (WebMCP) do tworzenia i udostępniania strukturalnych narzędzi agentom AI działającym w przeglądarce, w tym agentom opartym na rozszerzeniach. Agent wykorzystuje duży model językowy (LLM), reguły, pamięć i narzędzia do wykonywania działań w imieniu użytkownika.

Ponieważ LLM traktują cały tekst, instrukcje i dane użytkownika jako pojedynczy ciąg tokenów, są podatne na pośrednie wstrzykiwanie promptów, czyli dodawanie przez atakującego złośliwych instrukcji. Nasz zespół przygotował ten dokument dotyczący bezpieczeństwa narzędzi, aby pomóc Ci chronić witrynę i użytkowników przed nieuczciwymi podmiotami.

Niektóre modele mają warstwy, które zapobiegają wstrzykiwaniu promptów, ale nie można zagwarantować bezpieczeństwa w dużym modelu językowym (LLM). Modele mają charakter probabilistyczny. Pamiętaj, że w przypadku systemów agentowych, które korzystają z najnowocześniejszych LLM, dochodziło już do powtarzalnych ataków typu wstrzykiwanie promptów.Częstość występowania ataków w internecie rośnie.

Aby rozwiać te obawy, udostępniliśmy wstępne wskazówki dotyczące bezpieczeństwa dla osób, które tworzą narzędzia za pomocą WebMCP.

Korzystanie z podpowiedzi dotyczących adnotacji

Podczas tworzenia narzędzi warto dodać kilka wskazówek:

  • W razie potrzeby użyj untrustedContentHint. Jeśli narzędzie zwraca treści generowane przez użytkowników lub dane pochodzące z zewnętrznych źródeł, rozważ dodanie do niego ikony untrustedContentHint. To pole wyraźnie oznacza ładunek jako niezaufany, co pomaga chronić integralność witryny, a jednocześnie wysyła do agenta sygnał, że te dane wymagają większej uwagi.
  • Używaj consequentialHint w przypadku działań o dużym znaczeniu lub nieodwracalnych. Jeśli wykonanie narzędzia powoduje istotne działania, takie jak rezerwacja podróży lub przelew pieniędzy, ustaw wartość consequentialHint: true, aby agent lub przeglądarka mogli poprosić użytkownika o potwierdzenie przed wykonaniem działania.
  • Używaj ikony readOnlyHint w przypadku narzędzi, które nie zmieniają stanu. Dzięki temu agent może podejmować lepsze decyzje dotyczące tego, kiedy prosić użytkownika o potwierdzenie.

Udostępniaj narzędzia z rozwagą

Interfejs WebMCP document.modelContext.registerTool udostępnia agentom tylko funkcje narzędzia. Domyślnie inne witryny lub ramki iframe ze współdzieleniem nie mogą obserwować Twoich narzędzi ani wchodzić z nimi w interakcje.

Możesz przyznać dostęp do narzędzia za pomocą opcji exposedTo w registerTool do wielu konkretnych, bezpiecznych punktów początkowych. Dzięki temu narzędzie jest dostępne dla tych domen, gdy jest osadzone w Twojej witrynie, a Twoja witryna jest osadzona w tej domenie.

// https://partner.org

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

Udostępniaj narzędzia tylko zaufanym domenom. Jest to szczególnie ważne w przypadku narzędzi, które zarządzają danymi użytkowników lub w inny sposób wpływają na użytkowników.

  • Narzędzie tylko do odczytu, takie jak getFavoriteProducts, może ujawniać informacje o użytkowniku. Udostępniaj te narzędzia tylko witrynom, którym w inny sposób udostępniasz te dane.
  • Narzędzia z uprawnieniami do odczytu i zapisu wykonują działania w imieniu użytkownika. Te narzędzia powinny być udostępniane tylko źródłom, które uznasz za zaufane, gdy działają w imieniu użytkownika. Możesz na przykład udostępnić postComment witrynie trustedExample.com, ale nie witrynie evilExample.com.

Ustawianie budżetów znaków

Aby uniknąć ograniczeń agenta, pisz zwięzłe opisy narzędzi i dane wyjściowe. Aby uzyskać lepsze wyniki, zalecamy stosowanie tych limitów znaków:

  • 500 znaków na opis narzędzia
  • 150 znaków na opis parametru
  • 30 znaków na nazwę narzędzia i nazwę parametru
  • Limit 1500 znaków na dane wyjściowe poszczególnych narzędzi

Prawdopodobnie między agentami występują pewne różnice, dlatego możesz dostosować limity znaków na podstawie opinii użytkowników.

Dalsze kroki

Nadal prowadzimy badania i pracujemy nad stworzeniem bezpiecznej infrastruktury dla sieci agentowej. Na przykład trwa dyskusja na temat zarządzania zgodą między różnymi podmiotami, a wersja robocza specyfikacji zawiera requestUserInteraction(), które umożliwiają asynchroniczne żądanie danych wejściowych użytkownika podczas wykonywania narzędzia.

Jak planujesz wdrożyć WebMCP w swojej aplikacji? Czy masz inne obawy, dotyczące bezpieczeństwa lub nie? Jeśli zarejestrujesz się w programie testów origin WebMCP, chcemy poznać Twoje wrażenia:

Jeśli tworzysz agenta, zapoznaj się z artykułem Wskazówki dotyczące bezpieczeństwa agentów w przypadku WebMCP.