Sprawdzanie i oczyszczanie wszystkiego
Traktuj dane wejściowe dostarczane przez model jako niezaufane.
Sprawdzanie i oczyszczanie wszystkiego to bezpłatna lekcja MCP Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej MCP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs MCP Academy zawiera 4 lekcji w sumie.
Dane wejściowe są niezaufane
Każdy argument przekazywany przez model do narzędzia jest untrusted input. Model może działać uczciwie, ale jego argumenty mogą zostać ukształtowane przez wstrzyknięty tekst, dlatego należy je weryfikować. 🔎
Waliduj przed działaniem
Sprawdzaj kształt, typ i zakres danych, zanim narzędzie wykona jakiekolwiek rzeczywiste działanie. Validation na wejściu zamienia nieprecyzyjne, błędne wywołanie w jasną i bezpieczną odmowę.
Pozwól, aby Pydantic pomógł
Adnotacje typów i modele Pydantic odrzucają niepoprawne argumenty, zanim uruchomi się Twój kod. Ten argument musi być dodatnią liczbą całkowitą, więc ciąg znaków lub wartość ujemna zostaną refused early.
from pydantic import Field
@mcp.tool()
def get_page(n: int = Field(gt=0, le=100)) -> str:
return load(n)Ograniczaj wartości
Ograniczaj rozmiary, długości i liczbę elementów. Pole limit w zapytaniu uniemożliwia modelowi zażądanie miliona wierszy i zamienienie pojedynczego wywołania w denial of service.
Oczyszczaj dane dla miejsca docelowego
Sanitizing oznacza zabezpieczenie danych wejściowych odpowiednio do miejsca, w którym zostaną użyte. Wartość bezpieczna w logu może być niebezpieczna w powłoce, zapytaniu SQL lub ścieżce pliku.
Nigdy nie twórz SQL ręcznie
SQL składany przez konkatenację ciągów ułatwia injection. Używaj parameterized queries, aby baza danych traktowała dane modelu wyłącznie jako wartość, nigdy jako wykonywalny kod.
cur.execute(
"SELECT * FROM orders WHERE id = ?",
(order_id,),
)Zabezpieczaj powłokę
Jeśli narzędzie uruchamia polecenie, nigdy nie wklejaj argumentów do ciągu powłoki. Przekazuj argument list i unikaj parsowania przez powłokę, aby dane wejściowe nie mogły przemycić dodatkowych poleceń.
Rozwiązuj i ograniczaj ścieżki
W przypadku narzędzi do pracy z plikami rozwiąż ścieżkę do postaci kanonicznej i potwierdź, że pozostaje w dozwolonym katalogu głównym. Odrzucaj wszystko, co zawiera path traversal, na przykład ..
p = (ROOT / name).resolve()
if not p.is_relative_to(ROOT):
raise ValueError("path escapes root")Kończ działanie bezpiecznie
Gdy dane wejściowe nie przejdą kontroli, zatrzymaj działanie i zwróć jasny błąd. Failing closed jest lepsze od zgadywania, ponieważ błędne przypuszczenie może być dokładnie tym, czego chce atakujący.
Nie ufaj także wynikom narzędzi
Dane zwracane przez narzędzie mogą dalej przenosić wstrzyknięte instrukcje. W sytuacjach, w których ma to znaczenie, oznaczaj lub stosuj escaping dla fetched content, aby model traktował je jako dane, a nie polecenia.
Waliduj na każdej granicy
Sprawdzaj dane wejściowe, gdy trafiają do narzędzia, a następnie ponownie przed przekazaniem ich do bazy danych, pliku lub API. Każda boundary to kolejna okazja do wykrycia czegoś niebezpiecznego.
Szybkie sprawdzenie
Który wybór najlepiej chroni zapytanie SQL przed injection?
Podsumowanie
Traktuj wszystkie dane wejściowe narzędzi jako niezaufane: waliduj typy i zakresy, oczyszczaj dane odpowiednio do miejsca docelowego, ograniczaj ścieżki i kończ działanie bezpiecznie. Distrust the input. ✅
Często zadawane pytania
Czy lekcja „Sprawdzanie i oczyszczanie wszystkiego” jest bezpłatna?
Tak — pełny tekst „Sprawdzanie i oczyszczanie wszystkiego” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu MCP Academy, przejdź na CoddyKit PRO. Kurs MCP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Sprawdzanie i oczyszczanie wszystkiego”?
Traktuj dane wejściowe dostarczane przez model jako niezaufane. Ćwiczysz MCP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć MCP Academy?
Nie wymagamy żadnego doświadczenia. MCP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Sprawdzanie i oczyszczanie wszystkiego”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji MCP Academy?
Tak. Każda lekcja MCP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Zagrożenia charakterystyczne dla MCP
- Dostęp do narzędzi zgodny z zasadą najmniejszych uprawnień
- Sprawdzanie i oczyszczanie wszystkiego
- Zabezpieczanie destrukcyjnych działań