Filtracja danych
Filtracja danych
Założenie: Pokażemy, jak zabezpieczyć aplikację PHP przed atakami SQL Injection poprzez filtrację danych wejściowych przed ich użyciem w zapytaniach SQL.
Krok po kroku:
- Przygotowanie danych wejściowych: Załóżmy, że użytkownik podaje swoje imię i nazwisko w formularzu. Dane te są przekazywane do skryptu PHP za pomocą metody POST.
- Filtracja danych: Użyjemy funkcji `filter_input()` do przefiltrowania danych. Funkcja ta pozwala na określenie typu danych i metody filtrowania. W tym przykładzie użyjemy filtra `FILTER_SANITIZE_STRING` aby usunąć potencjalnie niebezpieczne znaki.
- Przygotowanie zapytania SQL: Użyjemy przygotowanych zapytań (prepared statements) aby uniknąć bezpośredniego wstawiania danych użytkownika do zapytania SQL.
$imie = filter_input(INPUT_POST, 'imie', FILTER_SANITIZE_STRING);
$nazwisko = filter_input(INPUT_POST, 'nazwisko', FILTER_SANITIZE_STRING);
Ten kod pobiera wartości ‘imie’ i ‘nazwisko’ z tablicy $_POST i czyści je z potencjalnie niebezpiecznych znaków.
$stmt = $pdo->prepare("INSERT INTO users (imie, nazwisko) VALUES (?, ?)");
$stmt->execute([$imie, $nazwisko]);
Ten kod przygotowuje zapytanie SQL i bezpiecznie wstawia przefiltrowane dane za pomocą metody `execute()`.
Pamiętaj, że to tylko podstawowy przykład. W rzeczywistych aplikacjach należy stosować bardziej zaawansowane techniki bezpieczeństwa, takie jak walidacja danych i ochrona przed innymi typami ataków.
Ten przykład pokazuje podstawowe techniki filtracji danych w PHP. Zachęcamy do dalszego zgłębiania tematu bezpieczeństwa aplikacji webowych!