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

Как защитить приложение от SQL-injection атаки

Используйте параметризованные запросы (prepared statements) вместо конкатенации строк. Это главный и самый надежный способ. В Python для этого используют DB-API или ORM:

python
# ПЛОХО (уязвимо к SQL-инъекциям):
cursor.execute(f"SELECT * FROM users WHERE login = '{user_input}'")

ХОРОШО (безопасно):

cursor.execute("SELECT * FROM users WHERE login = %s", (user_input,))

text

Дополнительные меры:
- Используйте ORM (SQLAlchemy, Django ORM) - они автоматически экранируют параметры
- Валидируйте пользовательский ввод
- Ограничивайте права доступа БД (не используйте root)
- Используйте хранимые процедуры с параметрами
- Применяйте whitelisting для динамических частей SQL (если параметризация невозможна)
- Регулярно обновляйте библиотеки БД

Пример с SQLAlchemy:
```python
result = session.query(User).filter(User.login == user_input).all()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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