Встречается на собеседованиях • сегодня
Как проверить код на наличие 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
интервью вопросы и ответы