Что такое уязвимость Mass Assignment (over-posting) и как Pydantic/DTO полностью нивелируют этот риск?

Mass Assignment возникает, когда пользователь может передать поля, которые ему запрещено изменять. DTO и Pydantic помогают через явный allowlist, но не устраняют риск автоматически.

Короткий ответ

Что ответить на собеседовании

Mass Assignment возникает, когда пользователь может передать поля, которые ему запрещено изменять. DTO и Pydantic помогают через явный allowlist, но не устраняют риск автоматически.

Подробный разбор

Ответ с пояснениями

Mass Assignment возникает, когда пользователь может передать поля, которые ему запрещено изменять. DTO и Pydantic помогают через явный allowlist, но не устраняют риск автоматически.

Если входная модель разрешает is_admin, owner_id или служебный статус, корректная валидация типа не делает изменение допустимым. Нужны отдельные схемы для конкретных операций, запрет лишних полей по политике API и явное сопоставление с доменной моделью. Вложенные объекты тоже проверяют. Авторизация на объект и поле остаётся отдельной обязанностью сервиса. Не передавайте сырой request body в ORM-конструктор или массовый update; новые поля модели должны проходить осознанное включение в контракт.

Источник: cheatsheetseries.owasp.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее