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:
- Zapytania parametryzowane (Prepared Statements):CSHARP
SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE Login = @login", conn); cmd.Parameters.AddWithValue("@login", loginUzytkownika); - 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.