mit*_*w16 6 c# asp.net-mvc veracode asp.net-mvc-5
根据Veracode的说法,我们的应用程序正在遭遇与技术特定输入验证问题相关的数百次CWE-ID 100"缺陷" .
根据他们的文档,修复是ModelState.IsValid在使用之前检查模型上的属性.我们在每个控制器动作上执行此操作,但我们仍然没有动作.下面是一个控制器动作示例
public async Task<ActionResult> DeliverySummary (ReportsViewModel Model)
{
if (ModelState.IsValid)
{
/* Other processing occurs here */
//finally return View
return View(Model);
}
else
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我们有System.ComponentModel.DataAnnotations我们的模型属性.
有没有人见过这个?
我自己一直在处理这个问题。罪魁祸首是您没有在参数上设置[Bind],而是指定了允许的属性。
我以前的登录控制器操作是这样的
public ActionResult SignIn(SignInViewModel viewModel)
为了纠正它,我需要像这样阅读
public ActionResult SignIn([Bind(Include = "Email,Password,UtcOffset")]SignInViewModel viewModel)
这对MVC所说的只是属性Email,Password并且UtcOffset将从中读取SignInViewModel,因此,如果黑客还设置了属性,LastLogonTime它将被忽略。
顺便说一句,由于来自Veracode的安全性检查,我认为这种模型绑定现在令人难以置信,考虑到开发人员现在必须使字符串与目标处的prop名称保持同步。真麻烦
| 归档时间: |
|
| 查看次数: |
1383 次 |
| 最近记录: |