我从Fortify on Demand收到以下发现:
ASP.NET MVC不良做法:具有必需属性的可选子模型
以下是收到发现的代码段的示例示例:
public interface IEditObjPermissionsItem : IErrorDictionary, IVrfyObject
{
string EntityType { get; }
int? foo { get; set; }
}
由于示例中完全没有使用 REQUIRED 属性,因此我对该发现感到困惑,并认为它可能是FoD方面的另一个FP ...
答案 0 :(得分:0)
我想我回答了我自己的问题。由于任何代码中都没有 [Required] ,因此为误报。
答案 1 :(得分:0)
发布不足漏洞可能是您的孩子的“子模型”包含Required属性。
说明
如果模型类具有必需的属性,并且是 父模型类的可选成员,可能容易受到 如果攻击者传达了要求 包含的数据少于预期。
ASP.NET MVC框架将尝试将请求参数绑定到模型 属性,包括子模型。
如果子模型是可选的-也就是说,父模型具有一个属性 没有[Required]属性-如果攻击者没有 传达该子模型,则父属性将为null 值和子模型的必填字段将不会被声明 通过模型验证。这是发布不足攻击的一种形式。
请参阅:VulnCat