Клиент может прислать role=admin или balance=999999, если фреймворк биндит все поля модели из JSON/form без whitelist DTO — это вертикальная эскалация через «удобный» binding.
Разбор
- Явные DTO/input models с разрешёнными полями.
- Отдельные команды для смены роли (только admin).
- Тесты: лишние поля в payload игнорируются.
- В ORM — осторожность с
update(req.body).
Итог
Mass assignment закрывают whitelist входных DTO и отдельными привилегированными операциями.