2016-08-18 16 views
2

HP fortify scan дает мне сообщение Массовое назначение: небезопасная конфигурация связующего (API Abuse, Structural) для большинства методов действий в моем контроллере. Ниже приведен пример метода действия.HP Fortify - массовое назначение

<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. Просьба предложить метод решения этой проблемы.

ответ

0

В C#, вы можете указать, какие элементы в модели будут допускаться Например, ваша процедура будет выглядеть в C#.

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

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

Это должно по крайней мере дать вы прыгаете, чтобы исследовать язык, на котором вы пишете, чтобы увидеть, разрешают ли они одно и то же действие.

В дополнение к включению определенных параметров (белый список) вы также можете исключить параметры, просто используя [Bind (Exclude = "")]