Unikanie dynamicznych zapytań

Założenie: Pokażemy, jak uniknąć dynamicznych zapytań w PHP, aby zmniejszyć ryzyko ataku SQL Injection.

Krok po kroku:

  1. Złe podejście – dynamiczne zapytanie: To przykład podatny na SQL Injection. Użytkownik może wpisać złośliwy kod w zmiennej $imie.
  2. 
    $imie = $_GET['imie'];
    $zapytanie = "SELECT * FROM uzytkownicy WHERE imie = '$imie'";
    $wynik = mysqli_query($polaczenie, $zapytanie);
    				
  3. Poprawne podejście – użycie prepared statements: Prepared statements zapobiegają SQL Injection, parametryzując zapytanie.
  4. 
    $imie = $_GET['imie'];
    $zapytanie = $polaczenie->prepare("SELECT * FROM uzytkownicy WHERE imie = ?");
    $zapytanie->bind_param("s", $imie); // "s" oznacza string
    $zapytanie->execute();
    $wynik = $zapytanie->get_result();
    				
  5. Wyjaśnienie: W drugim przykładzie, zmienna $imie jest traktowana jako parametr, a nie jako część samego zapytania SQL. Baza danych interpretuje ją jako zwykłą wartość, a nie jako kod SQL.

Ten przykład pokazuje podstawy unikania dynamicznych zapytań w PHP. Dalsza nauka zagadnień bezpieczeństwa w PHP jest kluczowa dla tworzenia bezpiecznych aplikacji.

Dodaj komentarz 0

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