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