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

Как избежать инъекций в приложении

Для предотвращения 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>... ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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