ASP.NET MVC 不良做法:控制器操作不限于开机自检 - 误报?



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

ASP.NET MVC 不良做法:控制器操作不限于开机自检

Code Flagged: public JsonResult NamesList(GetNamesForGroupsRequest request)

在提到的代码行上方是一个[HttpGet],而不是一个POST。

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

如果您不修改数据,我建议这可能是误报。强化对这种状态的解释(我的强调(

ASP.NET MVC 控制器操作,通过写入、更新、 或删除可能会受益于被限制接受 POST 动词。这增加了跨站请求伪造的难度 因为意外单击链接不会导致操作 执行。

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

POST 动词没有什么神奇之处可以防止 CSRF 与 PUT 或 DELETE 的对比。 如果你有一个好的CSRF策略,使用的特定动词应该无关紧要(除了GET。不要使用 GET 修改数据。

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

最新更新