Sanitizacja danych formularza
Założenie: Pokażemy, jak bezpiecznie przetwarzać dane wprowadzone przez użytkownika w formularzu, unikając luk bezpieczeństwa.
Krok po kroku:
- Odbieranie danych z formularza: Załóżmy, że formularz przesłał dane metodą POST. Odbierzemy imię i wiek użytkownika.
- Sanitizacja danych: Użyjemy funkcji `filter_input()` do oczyszczenia danych z potencjalnie szkodliwego kodu.
- Walidacja danych: Sprawdzimy, czy dane są poprawne.
$imie = $_POST['imie'];
$wiek = $_POST['wiek'];
Ten kod pobiera wartości z pól formularza o nazwach “imie” i “wiek”. `$_POST` jest tablicą asocjacyjną zawierającą dane przesłane metodą POST.
$imie = filter_input(INPUT_POST, 'imie', FILTER_SANITIZE_STRING);
$wiek = filter_input(INPUT_POST, 'wiek', FILTER_SANITIZE_NUMBER_INT);
Funkcja `filter_input()` sprawdza, czy dane pochodzą z `INPUT_POST` (dane z formularza POST), a następnie stosuje filtr `FILTER_SANITIZE_STRING` dla imienia (usuwa znaki HTML i inne potencjalnie niebezpieczne) oraz `FILTER_SANITIZE_NUMBER_INT` dla wieku (pozostawia tylko liczby całkowite).
if (empty($imie) || empty($wiek)) {
echo "Proszę wypełnić wszystkie pola!";
} else if ($wiek < 0 || $wiek > 120) {
echo "Nieprawidłowy wiek!";
} else {
echo "Imię: " . $imie . "
";
echo "Wiek: " . $wiek . " lat";
}
Ten kod sprawdza, czy pola nie są puste i czy wiek jest w rozsądnym zakresie. W przeciwnym wypadku wyświetla komunikat o błędzie.
Ten przykład pokazuje podstawy sanitizacji danych w PHP. Pamiętaj, że zawsze należy walidować i sanitizować dane wejściowe, aby zapobiec atakom XSS i innym zagrożeniom bezpieczeństwa.