Sanityzacja danych przed wstawieniem do bazy danych

Założenie: Pokażemy, jak oczyścić dane pochodzące z formularza przed wstawieniem ich do bazy danych, aby zapobiec atakom SQL injection i innym problemom związanym z bezpieczeństwem.

Krok po kroku:

  1. Pobranie danych z formularza: Załóżmy, że mamy formularz z polem “imię”. Dane z formularza pobieramy za pomocą zmiennej `$_POST[‘imie’]`. Jest to bardzo ważne, aby zawsze walidować dane pochodzące z formularzy.
  2. Sanityzacja danych: Użyjemy funkcji `htmlspecialchars()` do konwersji specjalnych znaków HTML na ich odpowiedniki w postaci encji HTML. To zapobiega potencjalnemu XSS (Cross-Site Scripting).
  3. 
    $imie = $_POST['imie'];
    $imie_bezpieczne = htmlspecialchars($imie, ENT_QUOTES, 'UTF-8');
    				

    Funkcja `htmlspecialchars()` przyjmuje trzy argumenty: wartość do oczyszczenia, flagę `ENT_QUOTES` (konwertuje zarówno pojedyncze, jak i podwójne cudzysłowy) oraz kodowanie znaków `UTF-8`.

  4. Wstawienie do bazy danych: Po oczyszczeniu danych, możemy bezpiecznie wstawić je do bazy danych za pomocą przygotowanych zapytań (prepared statements). To zapobiega atakom SQL injection.
  5. 
    // Przykładowe przygotowane zapytanie (użyj PDO lub MySQLi)
    $stmt = $pdo->prepare("INSERT INTO users (imie) VALUES (?)");
    $stmt->execute([$imie_bezpieczne]);
    				

    Pamiętaj, aby zawsze używać przygotowanych zapytań, aby uniknąć SQL injection. Nigdy nie wstawiaj danych bezpośrednio do zapytania SQL.

Ten przykład pokazuje podstawy sanityzacji danych w PHP. Pamiętaj, że bezpieczeństwo aplikacji jest kluczowe, a sanityzacja danych to tylko jeden z elementów, które należy uwzględnić. Zachęcamy do dalszego zgłębiania tematu bezpieczeństwa aplikacji webowych.

Dodaj komentarz 0

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