Bezpieczeństwo narzędzia WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Opublikowano: 9 czerwca 2026 r., ostatnia aktualizacja: 1 lipca 2026 r.

Wyjaśnienie Sieć Rozszerzenia Stan Chrome Intencja
GitHub Wersja próbna origin Testowanie origin Wyświetl Intencja eksperymentu

Za pomocą protokołu Web Model Context Protocol (WebMCP) możesz tworzyć i udostępniać narzędzia strukturalne agentom AI działającym w przeglądarce, w tym agentom obsługiwanym przez rozszerzenia. Agent używa dużego modelu językowego (LLM), reguł, pamięci i narzędzi do wykonywania działań w imieniu użytkownika.

Ponieważ duże modele językowe traktują cały tekst, instrukcje i dane użytkownika jako pojedynczą sekwencję 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 osobami o złych zamiarach.

Chociaż niektóre modele mają warstwy, które zapobiegają wstrzykiwaniu promptów, nie można zagwarantować bezpieczeństwa w dużym modelu językowym (LLM). Modele mają charakter probabilistyczny. Pamiętaj, że przeprowadzono już powtarzalne ataki polegające na wstrzykiwaniu promptów do systemów agentowych, które korzystają z najnowocześniejszych modeli LLM, a częstość występowania ataków w internecie rośnie.

Aby rozwiązać te problemy, przygotowaliśmy wstępne wskazówki dotyczące bezpieczeństwa dla osób tworzących narzędzia za pomocą WebMCP.

Używanie wskazówek 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 untrustedContentHint. To pole wyraźnie oznacza ładunek jako niezaufany, co pomaga chronić integralność witryny, a jednocześnie informuje agenta, że te dane wymagają większej uwagi.
  • Użyj readOnlyHint w narzędziach, które nie zmieniają stanu. Dzięki temu agent może podejmować lepsze decyzje dotyczące tego, kiedy prosić o potwierdzenie użytkownika.

Udostępnianie narzędzi z zachowaniem ostrożności

Interfejs WebMCP API document.modelContext.registerTool udostępnia funkcje narzędzia tylko agentom. Domyślnie inne witryny ani ramki iframe z innych domen 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 tablicy konkretnych, bezpiecznych domen. Dzięki temu narzędzie będzie 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']
});

Udostepniaj narzędzia tylko domenom którym ufasz. Jest to szczególnie ważne, gdy narzędzia zarządzają danymi użytkownika lub w inny sposób wpływają na użytkownika.

  • Narzędzie tylko do odczytu, np. getFavoriteProducts, może ujawnić informacje o użytkowniku. Takie narzędzia należy udostępniać 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 domenom, które Twoim zdaniem są godne zaufania, gdy działają w imieniu użytkownika. Na przykład możesz udostępnić postComment domenie trustedExample.com, ale nie chcesz udostępniać go domenie evilExample.com.

Ustawianie limitó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 1,5 tys.znaków na pojedyncze dane wyjściowe narzędzia

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

Dalsze kroki

Stale prowadzimy badania i pracujemy nad stworzeniem bezpiecznej infrastruktury dla sieci agentowej. Na przykład trwa dyskusja na temat zarządzania zgodą między stronami, a projekt specyfikacji zawiera requestUserInteraction() aby asynchronicznie prosić o dane wejściowe użytkownika podczas wykonywania narzędzia.

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

Jeśli tworzysz agenta, zalecamy zapoznanie się z artykułem Bezpieczeństwo agenta w WebMCP.