Встречается на 1% собеседований по Python
Как проверить код на наличие SQL инъекции
Для проверки кода на SQL-инъекции в Python:
- Используйте параметризованные запросы вместо конкатенации строк. Пример уязвимого кода:
python
query = f"SELECT * FROM users WHERE username = '{username}'" # Опасный вариант
cursor.execute(query)Безопасный вариант с параметрами:
python
query = "SELECT * FROM users WHERE username = %s"
cursor.execute(query, (username,))-
Проверьте ORM-запросы (если используется SQLAlchemy, Django ORM) - они обычно защищены, но иногда встречаются
raw()илиextra()с уязвимостями. -
Анализируйте динамическое построение запросов - любые случаи, где SQL формируется через форматирование строк (
f"",.format(),%s). -
Используйте статические анализаторы:
- Bandit (
pip install bandit) - SQLmap для тестирования готовых приложений
- Проверьте права доступа БД - даже при инъекции ограниченные права уменьшат ущерб.
Пример безопасного подхода с SQLAlchemy:
python
result = session.query(User).filter(User.username == username).all()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы