Sanityzacja danych z formularza przed ich przetworzeniem
Założenie: Przed zapisaniem danych z formularza do bazy danych lub wyświetleniem ich na stronie, musimy je oczyścić, aby zapobiec atakom XSS i SQL injection.
Krok po kroku:
- Pobranie danych z formularza: Załóżmy, że formularz przesłał dane metodą POST. Możemy pobrać je za pomocą zmiennych superglobalnych
$_POST
. - Sanityzacja danych: Użyjemy funkcji `htmlspecialchars()` do konwersji specjalnych znaków HTML na ich odpowiedniki encji HTML. Chroni to przed atakami XSS.
- Walidacja danych (opcjonalnie): Możemy dodać walidację, aby upewnić się, że dane są poprawne. Na przykład, możemy sprawdzić, czy adres email jest poprawny za pomocą wyrażenia regularnego.
- Użycie zsanityzowanych danych: Teraz możemy bezpiecznie użyć zsanityzowanych danych do wyświetlenia na stronie lub zapisu do bazy danych.
$imie = $_POST['imie'];
$email = $_POST['email'];
$imie_bezpieczne = htmlspecialchars($imie, ENT_QUOTES, 'UTF-8');
$email_bezpieczny = htmlspecialchars($email, ENT_QUOTES, 'UTF-8');
if (!filter_var($email_bezpieczny, FILTER_VALIDATE_EMAIL)) {
echo "Nieprawidłowy adres email!";
}
echo "Witaj, " . $imie_bezpieczne . "! Twój email: " . $email_bezpieczny;
Ten przykład pokazuje podstawy sanityzacji danych w PHP. Pamiętaj, że to tylko początek – istnieją bardziej zaawansowane techniki, które należy stosować w zależności od kontekstu.