ASP.NET MVC不良做法:具有必需属性的可选子模型-尽管未使用必需

时间:2018-09-12 15:29:43

标签: c# asp.net fortify

我从Fortify on Demand收到以下发现:

ASP.NET MVC不良做法:具有必需属性的可选子模型

以下是收到发现的代码段的示例示例:

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

由于示例中完全没有使用 REQUIRED 属性,因此我对该发现感到困惑,并认为它可能是FoD方面的另一个FP ...

2 个答案:

答案 0 :(得分:0)

我想我回答了我自己的问题。由于任何代码中都没有 [Required] ,因此为误报。

答案 1 :(得分:0)

发布不足漏洞可能是您的孩子的“子模型”包含Required属性。

  

说明

     

如果模型类具有必需的属性,并且是   父模型类的可选成员,可能容易受到   如果攻击者传达了要求   包含的数据少于预期。

     

ASP.NET MVC框架将尝试将请求参数绑定到模型   属性,包括子模型。

     

如果子模型是可选的-也就是说,父模型具有一个属性   没有[Required]属性-如果攻击者没有   传达该子模型,则父属性将为null   值和子模型的必填字段将不会被声明   通过模型验证。这是发布不足攻击的一种形式。

请参阅:VulnCat