Назад к вопросам
Junior — Middle
66
Какими способами можно предотвратить уязвимости, связанные с внедрением SQL-кода через параметры в JDBC?
Ответ от нейросети
sobes.tech 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-кода через параметры.