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

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

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

Пример уязвимого кода на Python с SQLite:

python
username = input("Enter username: ")
query = f"SELECT * FROM users WHERE username = '{username}'"
cursor.execute(query)

Если ввести ' OR '1'='1, запрос станет:

sql
SELECT * FROM users WHERE username = '' OR '1'='1'

Это вернёт все записи из таблицы users.

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

  1. Используйте параметризованные запросы:
python
cursor.execute("SELECT * FROM users WHERE username = ?", (username,))
  1. Применяйте ORM (например, SQLAlchemy)
  2. Валидируйте и экранируйте пользовательский ввод
  3. Ограничивайте права доступа БД
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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