Weryfikacja danych użytkownika

Weryfikacja danych użytkownika

Założenie: Pokażemy, jak bezpiecznie przetwarzać dane wejściowe od użytkownika, aby zapobiec atakom SQL Injection.

Krok po kroku:

  1. Przygotowanie danych: Załóżmy, że użytkownik wprowadza swoje imię i nazwisko w formularzu. Dane te są przekazywane do skryptu PHP za pomocą metody POST.
  2. Walidacja danych: Zanim użyjemy danych z formularza, musimy je zweryfikować. Użyjemy funkcji `filter_input` do filtrowania danych i usunięcia potencjalnie szkodliwych znaków.
    
    $imie = filter_input(INPUT_POST, 'imie', FILTER_SANITIZE_STRING);
    $nazwisko = filter_input(INPUT_POST, 'nazwisko', FILTER_SANITIZE_STRING);
    

    Funkcja `filter_input` pobiera dane z `INPUT_POST` (dane z formularza), nazwa pola (‘imie’, ‘nazwisko’) i filtr `FILTER_SANITIZE_STRING` który usuwa szkodliwe znaki.

  3. Przygotowanie zapytania SQL: Używając przygotowanych zapytań (prepared statements) unikniemy bezpośredniego wstawiania danych użytkownika do zapytania SQL.
    
    $stmt = $pdo->prepare("SELECT * FROM users WHERE imie = ? AND nazwisko = ?");
    $stmt->execute([$imie, $nazwisko]);
    

    Zmienna `$pdo` reprezentuje połączenie z bazą danych. Znak `?` jest placeholderem, który zostanie zastąpiony bezpiecznie przez wartości z tablicy.

  4. Wyświetlenie wyników: Po wykonaniu zapytania, możemy wyświetlić wyniki.
    
    $users = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach ($users as $user) {
        echo "Imię: " . $user['imie'] . "
    "; echo "Nazwisko: " . $user['nazwisko'] . "
    "; }

Pamiętaj, że ten przykład pokazuje podstawowe techniki zabezpieczania przed SQL Injection. W rzeczywistych aplikacjach należy stosować bardziej zaawansowane metody walidacji i sanitizacji danych.

Dodaj komentarz 0

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