Junior — Middle
Milyen biztonsági intézkedések akadályozzák meg az SQL-injektálásokat egy webalkalmazásban?
sobes.tech MI
Válasz az MI-től
A webes alkalmazásokban az SQL-injekciók megelőzése érdekében a következő biztonsági intézkedéseket alkalmazzák:
- Paraméterezett lekérdezések (prepared statements) használata, ahol a paramétereket külön adják át az SQL-kódnak.
- ORM (Object-Relational Mapping) könyvtárak alkalmazása, amelyek automatikusan escape-elik az adatokat.
- A felhasználói bemenetek szerveroldali validálása és szűrése.
- A hozzáférési jogok korlátozása az adatbázishoz, hogy minimalizálják a károkat egy esetleges támadás esetén.
Példa egy paraméterezett lekérdezésre C#-ban az ADO.NET segítségével:
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var command = new SqlCommand("SELECT * FROM Users WHERE Username = @username", connection);
command.Parameters.AddWithValue("@username", inputUsername);
var reader = command.ExecuteReader();
// eredmény feldolgozása
}