Podstawy sanitizacji
Założenie: Zademonstrujemy podstawowe techniki sanitizacji danych wejściowych z formularza, aby zapobiec atakom XSS.
Krok po kroku:
- Pobranie danych z formularza: Załóżmy, że mamy formularz z polem “imię”. Dane z tego pola po wysłaniu formularza są dostępne w zmiennej globalnej
$_POST['imie']
. - Sanitizacja danych: Użyjemy funkcji `htmlspecialchars()` do konwersji specjalnych znaków HTML na ich odpowiedniki w postaci encji HTML. To zapobiega wykonaniu kodu JavaScript wstawionego przez użytkownika.
- Wyświetlenie zsanitowanych danych: Teraz możemy bezpiecznie wyświetlić imię użytkownika.
$imie = $_POST['imie'];
$safe_imie = htmlspecialchars($imie, ENT_QUOTES, 'UTF-8');
Funkcja htmlspecialchars()
zamienia znaki takie jak <, >, “, ‘, & na odpowiednie encje HTML (np. <, >, ", ', &). Parametr `ENT_QUOTES` konwertuje również cudzysłowy pojedyncze i podwójne. `UTF-8` określa kodowanie znaków.
echo "Witaj, " . $safe_imie . "!";
Dzięki użyciu `htmlspecialchars()`, nawet jeśli użytkownik wprowadzi szkodliwy kod JavaScript, zostanie on wyświetlony jako zwykły tekst, a nie wykonany.
Ten przykład pokazuje podstawowe techniki sanitizacji. Pamiętaj, że w rzeczywistych aplikacjach konieczne jest stosowanie bardziej zaawansowanych metod w zależności od kontekstu, w jakim dane są używane.