Ответ вслух Middle Безопасность веб-приложения спрашивают часто обновлено

Безопасность Python-бэкенда: что вы проверяете

Вопрос

Какие меры безопасности вы закладываете в бэкенд на Django или FastAPI с первого дня?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Начинаю с контроля доступа, потому что это самая частая проблема: все эндпоинты требуют вход по умолчанию, данные фильтруются по владельцу или организации в одном месте, тесты проверяют доступ к чужим объектам.

Что должно прозвучать в ответе

  • Инъекции: только ORM и параметризованные запросы, белые списки для идентификаторов

  • Контроль доступа: запрет по умолчанию, проверка объектов

  • XSS и CSRF: автоэкранирование, без `|safe`, CSRF для cookie-авторизации

  • SSRF, загрузка файлов, опасные функции (pickle, eval, shell=True)

  • Настройки: DEBUG выключен, HTTPS, HSTS, флаги cookie, секреты в окружении

  • Зависимости, лимиты, логирование и алерты

Что могут спросить следом

  • Как вы проверяете зависимости на уязвимости?
  • Что логировать, а что нельзя?

Разбор

Образцовый ответ: «Начинаю с контроля доступа, потому что это самая частая проблема: все эндпоинты требуют вход по умолчанию, данные фильтруются по владельцу или организации в одном месте, тесты проверяют доступ к чужим объектам. Против инъекций использую ORM и параметризованные запросы, а то, что нельзя параметризовать, например поле сортировки, беру из белого списка. В шаблонах не использую |safe на пользовательских данных, если нужен HTML, то санитайзер. Для API на cookie не отключаю CSRF. Внешние URL от пользователя скачиваю только через защиту от SSRF. Никаких pickle, eval, yaml.load и shell=True с внешними данными. Загрузки: свои имена файлов, проверка типа, лимит размера, отдача с отдельного домена. В настройках DEBUG=False, HTTPS и HSTS, Secure и HttpOnly у cookie, секреты в окружении, check --deploy в CI. Зависимости фиксирую lock-файлом и проверяю pip-audit или Dependabot. Плюс лимиты размера и частоты запросов, логирование событий безопасности без паролей и токенов в логах».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме