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 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 (LLM) 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ć Twoją witrynę i użytkowników przed złośliwymi podmiotami.

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 w systemach agentowych, które korzystają z najnowocześniejszych modeli LLM, dochodziło już do powtarzalnych ataków polegających na wstrzykiwaniu promptów , 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.
  • W przypadku działań o wysokim ryzyku lub nieodwracalnych użyj consequentialHint. Jeśli wykonanie narzędzia powoduje istotne działania, takie jak rezerwacja podróży lub przelew pieniędzy, ustaw consequentialHint: true, aby agent lub przeglądarka mogły poprosić użytkownika o potwierdzenie przed wykonaniem.
  • W przypadku narzędzi, które nie zmieniają stanu, użyj readOnlyHint. Dzięki temu agent może podejmować lepsze decyzje dotyczące tego, kiedy prosić użytkownika o potwierdzenie.

Uważne udostępnianie narzędzi

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 mogą być zaufane podczas działania w imieniu użytkownika. Na przykład możesz chcieć 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()dane wejściowe użytkownika 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.