Logo David Burdelak
Słownik · Cyberbezpieczeństwo

Co to jest sanityzacja danych?

Ostatnia aktualizacja:

Sanityzacja danych to proces usuwania lub neutralizowania niebezpiecznych elementów z danych pochodzących od użytkownika, na przykład znaczników HTML czy poleceń SQL, zanim zostaną zapisane lub wyświetlone.

Sanityzacja a walidacja

Walidacja sprawdza, czy dane mają poprawny format, i odrzuca niepoprawne. Sanityzacja przekształca dane tak, aby były bezpieczne, na przykład usuwa znaczniki skryptów.

Sanityzacja a escapowanie

Escapowanie zamienia znaki specjalne na bezpieczne odpowiedniki przy wyświetlaniu, np. < na &lt;. Najlepiej escapować dane w miejscu użycia: w HTML, atrybucie, SQL czy adresie URL.

Jak stosować w praktyce?

Waliduj dane po stronie serwera, escapuj je przy wyświetlaniu i używaj zapytań parametryzowanych. Do czyszczenia HTML wybieraj sprawdzone biblioteki zamiast własnych wyrażeń regularnych.

Metoda zależy od kontekstu wyjścia.

Typowe błędy

Najczęstszy błąd to czyszczenie danych przy zapisie, a nie przy wyświetlaniu, bo te same dane mogą trafić do HTML, JSON, CSV i zapytań SQL, a każdy kontekst wymaga innego traktowania. Drugi to usuwanie niebezpiecznych fragmentów wyrażeniami regularnymi, które łatwo obejść. Trzeci to zaufanie do danych z własnej bazy, które mogły wcześniej pochodzić od użytkownika.

Powiązane pojęcia

Wszystkie hasła z kategorii Cyberbezpieczeństwo