Junior — Middle
Πώς μπορούμε να προστατεύσουμε μια βάση δεδομένων από SQL injection;
sobes.tech AI
Απάντηση από AI
Η προστασία της βάσης δεδομένων από επιθέσεις SQL injection είναι ένα σημαντικό θέμα ασφαλείας. Οι κύριοι τρόποι προστασίας στην Java:
- Χρήση προετοιμασμένων δηλώσεων (PreparedStatement) — οι παράμετροι του ερωτήματος περνούν ξεχωριστά, αποτρέποντας την εισαγωγή κακόβουλου SQL κώδικα.
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
-
Επικύρωση και φιλτράρισμα εισερχόμενων δεδομένων — έλεγχος της μορφής και του περιεχομένου των δεδομένων πριν τη χρήση τους σε ερωτήματα.
-
Χρήση ORM πλαισίων (π.χ., Hibernate) — δημιουργούν αυτόματα ασφαλή ερωτήματα.
-
Ελαχιστοποίηση δικαιωμάτων πρόσβασης — οι λογαριασμοί της βάσης δεδομένων πρέπει να έχουν τα ελάχιστα απαραίτητα δικαιώματα.
-
Τακτικές ενημερώσεις και patches — διατήρηση του λογισμικού της βάσης δεδομένων και των οδηγών ενημερωμένων.
Αυτές οι μέθοδοι μειώνουν σημαντικά τον κίνδυνο επιτυχούς SQL injection.