gpt4 book ai didi

c# - MVC5 的 CWE-ID 100 修复

转载 作者:太空狗 更新时间:2023-10-29 21:43:14 24 4
gpt4 key购买 nike

根据 Veracode,与技术特定输入验证问题相关的 CWE-ID 100“缺陷”使我们的应用程序出现了数百次。

根据他们的文档,补救措施是在使用模型之前检查模型的 ModelState.IsValid 属性。我们在每个 Controller Action 上都这样做,但我们仍然有问题。下面是一个示例 Controller 操作。

public async Task<ActionResult> DeliverySummary (ReportsViewModel Model)
{
if (ModelState.IsValid)
{
/* Other processing occurs here */

//finally return View
return View(Model);
}
else
{
return View();
}
}

我们的模型属性上有 System.ComponentModel.DataAnnotations

有人遇到过这种情况吗?

最佳答案

我自己一直在处理这个问题。基本的罪魁祸首是你没有在你的参数上设置 [Bind] ,指定允许的属性。

我的旧登录 Controller 操作是这样的

public ActionResult SignIn(SignInViewModel viewModel)

为了更正它,我需要它像这样读

public ActionResult SignIn([Bind(Include = "Email,Password,UtcOffset")]SignInViewModel viewModel)

这对 MVC 来说只是属性 EmailPasswordUtcOffset 将从 SignInViewModel 中读取,因此如果黑客还设置了 LastLogonTime,它将被忽略。

顺便说一句,由于 Veracode 的安全检查,我认为这种模型绑定(bind)现在非常尴尬,考虑到开发人员现在必须使字符串与目标的 prop 名称保持同步。真麻烦。

关于c# - MVC5 的 CWE-ID 100 修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44417855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com