ASP.NET MVC不良做法:控制器操作不限于POST-错误警报?

时间:2018-09-04 17:35:38

标签: c# fortify

我正在使用Fortify on Demand处理一些源代码,并获得了其中一些弹出窗口(C#项目):

ASP.NET MVC错误做法:控制器操作不限于POST

 Code Flagged: public JsonResult NamesList(GetNamesForGroupsRequest request)

上面提到的代码行是[HttpGet],而不是POST。

再次认为这是一个误报...

2 个答案:

答案 0 :(得分:1)

如果您不修改数据,我建议这可能是一个误报。对此的强化说明(我的重点)

  

ASP.NET MVC控制器操作,该操作通过编写,更新,   或删除可能会因受到限制而无法接受   动词。这增加了跨站点请求伪造的难度   因为意外点击链接不会导致该操作   执行。

从方法签名看来,您似乎是根据请求返回数据,而不是修改请求,因此我认为在您的情况下,它可能被认为是误报。

答案 1 :(得分:0)

使用POST动词来阻止CSRF与PUT或DELETE并没有什么神奇之处。 如果您有适当的CSRF策略,则所用的特定动词应该无关紧要(除了GET。不要使用GET修改数据。)

通过消息正文而不是URL传递数据可能有助于使敏感数据远离日志和其他地方。 (假设您正在使用TLS。)