Встречается на собеседованиях • сегодня
Как избежать инъекций в приложении
Для предотвращения SQL-инъекций используйте параметризованные запросы или ORM (например, SQLAlchemy, Django ORM). Никогда не вставляйте пользовательский ввод напрямую в SQL-запрос.
**Пример с параметризованным запросом (SQLite):**
```python
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# Плохо (уязвимо к инъекциям)
user_input = "admin'; DROP TABLE users;--"
cursor.execute(f"SELECT * FROM users WHERE username = '{user_input}'") # Опасность!
# Хорошо (безопасно)
cursor.execute("SELECT * FROM users WHERE username = ?", (user_input,))
```
Для веб-приложений:
- Экранируйте HTML/JS (используйте `html.escape` или шаблонизаторы, например Jinja2 с автоэкранированием).
- Валидируйте и санируйте ввод (библиотеки `bleach`, `WTForms`).
- Используйте подготовленные запросы для БД.
**Пример экранирования HTML:**
```python
import html
user_input = ""
safe_output = html.escape(user_input) # Превратится в <script>...
```

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы