CyberGlossary

Уязвимости

Массовое присваивание (Mass Assignment)

Также известно как: Уязвимость автопривязки, Object injection

Определение

Уязвимость, при которой приложение слепо привязывает поля запроса от клиента к внутренним свойствам объекта, позволяя задавать те, что не должны контролироваться.

Массовое присваивание возникает, когда фреймворки (Rails, Spring, ASP.NET, NestJS, Django) автоматически отображают входящий JSON или поля формы на атрибуты модели без явного allow-list. Атакующий добавляет дополнительные свойства — isAdmin, role, balance, tenantId — и сервер записывает их в БД. Из-за неявности присваивание трудно заметить при ревью; также называют autobinding или object injection. Защита: явные DTO или схемы входа, строгие allow-list связываемых полей, отделение внутренних атрибутов от моделей, доступных извне, тесты безопасности с неожиданными ключами JSON.

Примеры

  • Отправка {"name":"Bob","isAdmin":true} на /api/users и получение прав администратора.
  • Обновление заказа со скрытым полем скидки через POST, обходящее ценовую логику.

Связанные термины