Przejdź do treści głównej
INF.04Inżynieria Oprogramowania, Bezpieczeństwo i BHP

Wstrzykiwanie SQL (SQL Injection)

Krytyczna luka bezpieczeństwa polegająca na wstrzyknięciu złośliwego fragmentu kodu SQL do zapytania przez niezwalidowane pole formularza użytkownika.

Przykład ataku:

Gdy zapytanie jest sklejane tekstem: "SELECT * FROM Users WHERE Login = '" + login + "' AND Haslo = '" + pass + "'" Wpisanie loginu: admin' -- komentuje resztę zapytania i loguje atakującego bez podania hasła!

Ochrona przed SQL Injection:

  1. Zapytania parametryzowane (Prepared Statements):
    CSHARP
    SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE Login = @login", conn);
    cmd.Parameters.AddWithValue("@login", loginUzytkownika);
  2. Używanie frameworków ORM (np. Entity Framework).

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Wstrzykiwanie SQL (SQL Injection) lub rozpocznij trening.