Junior — Middle
Cum se poate proteja o bază de date împotriva injecțiilor SQL?
sobes.tech AI
Răspuns de la AI
Protecția bazei de date împotriva injecțiilor SQL este un aspect important al securității. Principalele metode de protecție în Java:
- Utilizarea declarațiilor pregătite (PreparedStatement) — parametrii interogării sunt transmiși separat, ceea ce exclude posibilitatea injectării de cod SQL malițios.
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();
-
Validarea și filtrarea datelor de intrare — verificarea formatului și conținutului datelor înainte de utilizare în interogări.
-
Utilizarea framework-urilor ORM (de exemplu, Hibernate) — acestea generează automat interogări sigure.
-
Minimizarea drepturilor de acces — conturile bazei de date trebuie să aibă drepturi minime necesare.
-
Actualizări și patch-uri regulate — menținerea actualizată a software-ului bazei de date și a driverelor.
Aceste metode, combinate, reduc semnificativ riscul unei injecții SQL reușite.