Sobes.tech
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
}