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

Что такое SQL-инъекция

SQL-инъекция — это уязвимость, возникающая при некорректной обработке пользовательского ввода, который затем используется в SQL-запросах. Злоумышленник может внедрить вредоносный SQL-код, что приведёт к выполнению произвольных запросов к БД (например, кража данных, удаление таблиц).

Пример уязвимого кода:

java
String userInput = request.getParameter("username");
String query = "SELECT * FROM users WHERE username = '" + userInput + "'";
// Если userInput = ' OR '1'='1, запрос вернёт всех пользователей

Как защититься:

  1. Prepared Statements (лучший способ):
java
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, userInput); // Экранирование автоматическое
  1. Валидация ввода, ORM (Hibernate), ограничение прав доступа БД.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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