Неправильные практики ASP.NET MVC: необязательная подмодель с обязательным свойством - хотя и не используется обязательно - PullRequest
0 голосов
/ 12 сентября 2018

У меня получено следующее заключение от Fortify on Demand:

Неправильные практики ASP.NET MVC: необязательная подмодель с обязательным свойством

Вот пример примера фрагмента кода, который получил результат:

public interface IEditObjPermissionsItem : IErrorDictionary, IVrfyObject
{
    string EntityType { get; }
    int? foo { get; set; }
}

Поскольку свойство REQUIRED вообще не использовалось в этом примере, я запутался в обнаружении и думаю, что это может быть другой FP на стороне FoD ...

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Недостаточная уязвимость возникает, если ваша дочерняя «подмодель» содержит атрибут Required.

Объяснение

Если у класса модели есть обязательное свойствои является типом необязательного члена родительского модельного класса, он может быть подвержен недооценке атак, если злоумышленник отправит запрос, содержащий меньше данных, чем ожидается.

Платформа ASP.NET MVC будетпопытайтесь привязать параметры запроса к свойствам модели, включая подмодели.

Если подмодель является необязательной, то есть родительская модель имеет свойство без атрибута [Обязательный], и если злоумышленник не сообщает, чтосубмодели, тогда родительское свойство будет иметь нулевое значение, и обязательные поля дочерней модели не будут подтверждены проверкой модели.Это одна из форм недооценки атаки.

См .: VulnCat

0 голосов
/ 12 сентября 2018

Кажется, я ответил на свой вопрос.Поскольку в любом коде нет [Обязательный] , это ложное срабатывание.

...