Sobes.tech
Junior — Middle

Ποια μέτρα ασφαλείας επιτρέπουν την πρόληψη των SQL injection σε μια web εφαρμογή;

sobes.tech AI

Απάντηση από AI

Για την αποτροπή επιθέσεων SQL injection σε web εφαρμογές, εφαρμόζονται τα ακόλουθα μέτρα ασφαλείας:

  • Χρήση παραμετροποιημένων ερωτημάτων (prepared statements), όπου οι παράμετροι περνούν ξεχωριστά από τον SQL κώδικα.
  • Χρήση βιβλιοθηκών ORM (Object-Relational Mapping), που αυτομάτως διαφεύγουν τα δεδομένα.
  • Επικύρωση και φιλτράρισμα των εισόδων χρηστών στην πλευρά του διακομιστή.
  • Περιορισμός των δικαιωμάτων πρόσβασης στη βάση δεδομένων για ελαχιστοποίηση των ζημιών σε περίπτωση πιθανής επίθεσης.

Παράδειγμα παραμετροποιημένου ερωτήματος σε C# με ADO.NET:

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();
    // επεξεργασία αποτελέσματος
}