Sobes.tech
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 код чрез параметри.