HP Fortify - 批量分配

时间:2016-08-18 09:49:58

标签: fortify mass-assignment

HP强化扫描为我的控制器中的大多数操作方法提供了批量分配:不安全的Binder配置(API滥用,结构)的消息。以下是操作方法的示例。

<HttpPost>
Function Edit(model as GridViewModel)
Dim manager as new Managers
manager.Edit(model.id, model.name, model.desc,model.class)
Return Nothing
End Function

当我尝试使用以下方法时,错误消失了。

<HttpPost>
Function Edit(id as integer?,name as string, desc as string, class as string)
Dim manager as new Managers
manager.Edit(id, name, desc,class)
Return Nothing
End Function

但上面的代码似乎是MVC不良做法。 请建议一种方法来克服这个问题。

1 个答案:

答案 0 :(得分:0)

在C#中,您可以指定允许模型中的哪些项目。例如,您的例程在c#中将如下所示:

[HttpPost]
public ActionResult Edit([Bind(Include = "id,name,desc,class")] GridviewModel model)
{
	Managers manager = new Managers();
	manager.Edit(model.id, model.name, model.desc, model.class);

	return RedirectToAction("Edit", "[Controller]");
}

这至少应该为你提供一个研究你所写语言的跳跃点,看看他们是否允许同样的行动。

除了能够包含特定参数(白名单)之外,您还可以使用[Bind(Exclude =“”)]

简单地排除参数