Встречается на собеседованиях • сегодня

Как бороться с SQL-инъекцией в JDBC

Используйте PreparedStatement вместо Statement для параметризованных запросов. Это предотвращает подстановку зловредного SQL-кода в параметры.

Пример:

java
String query = "SELECT * FROM users WHERE username = ? AND password = ?";
try (PreparedStatement stmt = connection.prepareStatement(query)) {
    stmt.setString(1, username); // безопасная подстановка
    stmt.setString(2, password);
    ResultSet rs = stmt.executeQuery();
    // обработка результата
}

Дополнительные меры:

  • Валидация входных данных (регулярные выражения, whitelist)
  • Использование ORM (Hibernate, JPA) с их встроенной защитой
  • Ограничение прав пользователя БД (минимальные привилегии)
  • Экранирование спецсимволов (если PreparedStatement недоступен)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы