Junior — Middle
Как могат да се предотвратят уязвимостите, свързани с внедряването на SQL код чрез параметри в JDBC?
sobes.tech AI
Отговор от AI
За да предотвратите уязвимости, свързани с внедряване на SQL код (SQL Injection) чрез параметри в JDBC, използвайте следните методи:
-
PreparedStatement — използване на параметризирани заявки, при които параметрите се предават отделно и не се вмъкват директно в SQL низ. Това предотвратява интерпретирането на параметрите като код.
-
Валидиране и екраниране на входните данни — проверка и почистване на данните преди използването им в заявки.
-
Използване на ORM — например Hibernate, които автоматично генерират безопасни заявки.
Пример за използване на PreparedStatement:
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();
Този подход изключва възможността за внедряване на злонамерен SQL код чрез параметри.