Zapobieganie XSS
Założenie: Pokażemy, jak zabezpieczyć aplikację PHP przed atakami XSS (Cross-Site Scripting) poprzez właściwe filtrowanie danych wejściowych.
Krok po kroku:
- Oczyszczanie danych wejściowych za pomocą funkcji `htmlspecialchars()`
$niebezpieczneDane = $_GET['imie']; // Dane pochodzące z GET $bezpieczneDane = htmlspecialchars($niebezpieczneDane, ENT_QUOTES, 'UTF-8');
Funkcja `htmlspecialchars()` zamienia specjalne znaki HTML (jak <, >, “, ‘) na ich odpowiedniki HTML entities, zapobiegając wykonaniu kodu JavaScript. `ENT_QUOTES` konwertuje również cudzysłowy pojedyncze i podwójne. ‘UTF-8’ określa kodowanie znaków.
- Wyświetlanie bezpiecznych danych
echo "Witaj, " . $bezpieczneDane . "!";
Teraz, nawet jeśli `$niebezpieczneDane` zawierało złośliwy kod JavaScript, `htmlspecialchars()` go zneutralizuje.
- Użycie Prepared Statements (w przypadku interakcji z bazą danych)
// Przykład z PDO $stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?"); $stmt->execute([$bezpieczneDane]);
Prepared Statements zapobiegają iniekcjom SQL, które są często wykorzystywane w połączeniu z atakami XSS.
Ten przykład pokazuje podstawowe techniki zapobiegania atakom XSS. Pamiętaj, że bezpieczeństwo aplikacji wymaga kompleksowego podejścia i dalszej nauki zaawansowanych technik.