Sanityzacja danych w programowaniu – po co i jak
Czym jest sanityzacja?
Sanityzacja (sanitization) to oczyszczanie i normalizacja danych wejściowych tak, aby były bezpieczne w danym kontekście użycia. Chodzi o to, żeby dane od użytkownika (formularze, URL-e, API) nie mogły zostać użyte do ataku – np. wstrzyknięcia SQL, XSS czy manipulacji logiką aplikacji.
Sanityzacja nie zastępuje walidacji (czy dane są poprawne formatowo i biznesowo), ale z nią współgra: najpierw walidujesz, potem w zależności od kontekstu – escapujesz lub normalizujesz.
Kontekst ma znaczenie
To samo pole tekstowe może trafić do:
Jedna „uniwersalna” sanityzacja na wszystko nie istnieje – zawsze zależy od kontekstu, w którym dane są później używane.
Dobre praktyki
Podsumowanie
Sanityzacja to element secure coding: odpowiednie traktowanie danych wejściowych w zależności od kontekstu. W połączeniu z walidacją i sensowną konfiguracją (CSP, nagłówki) znacząco zmniejsza ryzyko injection i XSS.
Chcesz sprawdzić, czy Twoja aplikacja poprawnie obsługuje wejście? Pentest webowy często obejmuje właśnie te obszary.