sanitize faktycznie redaguje, czego
nie, i która kontrola zarządza treścią, którą narzędzie zwraca.
1. Co „sanitize” oznacza na powierzchni mcp
Gdy agent wywołuje narzędzie przez bramę MCP, każdetools/call jest ewaluowane na powierzchni mcp przed dyspozycją.
Dopasowująca reguła może nieść jeden z
autorowalnych werdyktów firewalla — allow, audit, deny, sanitize,
pending_approval lub cap_cost. Werdykt sanitize to ten redagujący:
- Uruchamia zestaw detektorów kształtu sekretu nad argumentami wywołania (JSON, który model przekazał do narzędzia).
- Każde dopasowanie jest zastępowane kanonicznym tokenem jak
[redacted:openai_key], a przepisane argumenty to to, co zostaje przesłane do serwera. - Narzędzie wciąż się uruchamia —
sanitizeto nieblokujący, przepuszczający werdykt. Agent się nie wysypuje; po prostu nigdy nie wręcza surowego sekretu narzędziu.
sk-, tokeny Bearer, US SSN, numery kart poprawne
wg Luhna, email), a reguła może dodać niestandardowe regexy, których
dopasowania renderują się jako [redacted:custom].
Na powierzchni inbound — ogłoszone
tools[], które żądanie deklaruje,
zanim jakiekolwiek narzędzie zostanie wywołane — nie ma argumentów z czasu
wywołania do zredagowania, więc werdykt sanitize tam zawodzi zamknięty i
eskaluje do deny. Sanitize ma sens tylko tam, gdzie jest żywy ładunek
argumentów do przepisania: powierzchnie mcp i response.2. Jedna konkretna reguła
Powiedzmy, że chcesz, by każde wywołanie narzędzia, którego argumenty zawierają klucz w stylu OpenAI, było przesyłane z wyczyszczonym kluczem, zamiast blokowane. Autoruj regułę na powierzchni mcp z werdyktemsanitize,
skonfigurowaną do wykrywania tego kształtu sekretu. Zrób to z konsoli
(Firewall → polityka → reguły); zapis wymaga Developer+.
Reguła, koncepcyjnie:
| Pole | Wartość |
|---|---|
| Powierzchnia | mcp |
tool_name_glob | * (lub zawęź do jednego serwera, np. github.*) |
| Werdykt | sanitize |
| Presety sanitize | detektory sekretów do włączenia |
sanitize, powierzchnię i dopasowaną regułę.
3. Wyniki narzędzi są niezaufane — zarządzaj nimi na odpowiedzi modelu
Oto część, którą większość konfiguracji „oczyść wyjście” robi źle. Werdyktsanitize dotyka tylko argumentów. Wynik narzędzia — tekst lub JSON,
który serwer MCP odsyła — nigdy nie jest przepisywany przez werdykt firewalla.
OrcaRouter traktuje treść wyniku narzędzia jako niezaufane wejście do
modelu. Skompromitowany lub zatruty serwer MCP może zwrócić sekret, rekord
PII lub ładunek prompt-injection przebrany za dane. Kontrolą dla tej treści
jest guardrail na etapie output — odpowiedzi
modelu, ewaluowanej po tym, jak model wcielił wynik narzędzia.
Łap sekrety, które wypływają w odpowiedzi
Łap sekrety, które wypływają w odpowiedzi
Dołącz guardrail z presetem Secrets & API-Key Blocker (kategoria
secrets). Blokuje poświadczenia w stylu AWS / OpenAI / GitHub; sparuj go
z Private Keys & Cloud Tokens dla kluczy PEM, tokenów Slack/Stripe,
kluczy Google i JWT. Blok na etapie output zwraca guardrail_blocked
(HTTP 400) i zwraca limit żądania.Redaguj PII w odpowiedzi
Redaguj PII w odpowiedzi
Preset PII Shield maskuje typowane encje —
[EMAIL], [SSN],
[CREDIT_CARD], … — renderując dopasowane wartości jako tagi.
Maskowanie na etapie input jest żywe przy każdym żądaniu (strumieniowym
lub nie): maskuje żądanie, zanim model je zobaczy. Maskowanie na etapie
output przepisuje odpowiedź modelu tylko na niestrumieniowych
odpowiedziach; przepisywanie w paśmie odpowiedzi strumieniowej jest na
roadmapie, więc reguła mask nie redaguje jeszcze strumieniowanej
odpowiedzi.Neutralizuj injection jadące w wynikach narzędzi
Neutralizuj injection jadące w wynikach narzędzi
Zatruty wynik może nieść tekst w stylu „zignoruj poprzednie instrukcje”.
Preset bezpieczeństwa Prompt-Injection Basics (słowo kluczowe/regex)
plus reguła
llm_judge, która punktuje intencję injection, to tutaj
kontrole. Zobacz
Zatruwanie narzędzi MCP i
Prompt injection.Egzekwowanie output i strumieniowanie. Blok na etapie output jest
egzekwowany zarówno na strumieniowych, jak i niestrumieniowych odpowiedziach —
na strumieniu blok tnie strumień, gdy dopasowuje, i emituje generyczne
powiadomienie o bloku. Mask na etapie output stosuje się tylko do
niestrumieniowych odpowiedzi; przepisywanie w paśmie odpowiedzi
strumieniowej jest na roadmapie, więc reguła mask nie redaguje jeszcze
strumieniowanej odpowiedzi.
4. Gdzie mieszka każda kontrola
Zwięzła mapa dwóch powierzchni, tak byś okablował właściwą gałkę do właściwego ryzyka:| Chcesz zarządzać… | Kontrola | Gdzie |
|---|---|---|
| Sekrety w argumentach wywołania narzędzia | Werdykt firewalla sanitize (powierzchnia mcp) | Reguły firewalla |
| Sekrety / PII / injection w wyniku narzędzia | Guardrail na etapie output | Guardrails |
5. Dołączanie i obserwowanie
Obie kontrole mają zakres przestrzeni roboczej, są nazwane i uporządkowane, i obie dołączają się na te same dwa sposoby:- Per klucz — ustaw
firewall_policy_id(dla reguły sanitize) iguardrail_id(dla polityki output) na kluczu, którego używa agent. - Domyślne przestrzeni roboczej — oznacz politykę / guardrail jako domyślne przestrzeni roboczej, tak by każdy klucz je dziedziczył.
6. Dokąd dalej
Lista dozwolonych narzędzi MCP
Domyślnie odmawiaj serwerowi i zezwól tylko na narzędzia, które
zrecenzowałeś.
Reguły firewalla
Pełny DSL reguł — werdykty, globy, args-match, konfiguracja sanitize.
Guardrails
Polityki treści, presety, encje PII i egzekwowanie etapu output.
Zatruwanie narzędzi MCP
Zagrożenie, które w pierwszej kolejności czyni wyniki narzędzi
niezaufanymi.
