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:

  1. 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.

  2. Wyświetlanie bezpiecznych danych
    
    echo "Witaj, " . $bezpieczneDane . "!";
    				

    Teraz, nawet jeśli `$niebezpieczneDane` zawierało złośliwy kod JavaScript, `htmlspecialchars()` go zneutralizuje.

  3. 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.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *