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

Что нужно делать, чтобы не допустить возможность SQL Injection

Используй PreparedStatement вместо конкатенации строк в SQL-запросах. PreparedStatement автоматически экранирует параметры, предотвращая инъекции. Также можно использовать ORM (Hibernate, JPA) или библиотеки типа JDBI.

Пример безопасного кода:

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

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

  • Валидация входных данных
  • Принцип минимальных привилегий для DB-пользователя
  • Использование хранимых процедур
  • Регулярное обновление СУБД и драйверов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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