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

Как решить проблему SQL инъекции

Используйте PreparedStatement вместо обычного Statement. Он автоматически экранирует параметры, предотвращая инъекции. Пример:

java
String query = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement stmt = connection.prepareStatement(query);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();

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

  • Валидация входящих данных (регулярные выражения, whitelist)
  • Использование ORM (Hibernate, JPA)
  • Принцип минимальных привилегий для БД пользователя
  • Логирование и мониторинг подозрительных запросов

Никогда не конкатенируйте SQL-запросы со строковыми параметрами напрямую!

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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