Checkmarx XSRF问题

时间:2019-03-06 17:55:37

标签: asp.net webforms .net-4.0 csrf checkmarx

Checkmarx抱怨我们的Web应用程序中存在XSRF问题。我们正在将ASP.NET Web表单与框架4.0(而非MVC)一起使用

Checkmarx说: \ ABC.aspx.vb的第1760行的方法btnSubmit_Click从元素文本中的用户请求URL获取参数。此参数值流经代码,并最终用于修改数据库内容。该应用程序不需要为该请求更新用户身份验证。这可能会启用跨站点请求伪造(XSRF)。

关于如何防止ASP.NET Webform应用程序使用XSRF的任何想法?

我们尝试了很多解决方案,但没有一个通过Checkmarx: 这是我们尝试过的一些事情:
https://software-security.sans.org/developer-how-to/developer-guide-csrf

http://willseitz-code.blogspot.com/2013/06/cross-site-request-forgery-for-web-forms.html?m=1

https://security.stackexchange.com/questions/187740/two-solutions-for-csrf-on-owasp-for-asp-net-webforms

我认为上述解决方案应该可以起作用,并且可以保护我们的Web表单免受CSRF / XSRF的威胁,但是Checkmarx为什么无法检测到它?这是假阳性吗?

1 个答案:

答案 0 :(得分:0)

建议检查 Checkmarx 门户(设置/扫描设置/查询查看器)中的 CxQL 查询,以了解 Checkmarx 如何发现漏洞,包括 Checkmarx 能够检测到的保护类型。

对于您的情况,请检查 CSharp/Cx/CSharp_Medium_Threat/XSRF 中的逻辑。

对于 Web 表单应用程序,查询 CSharp/Cx/General/Find_XSRF_Sanitize 用于查找您是否在应用程序中进行了任何保护。

正如 Find_XSRF_Sanitize 的评论所说:

<块引用>

对于 ASP Web Forms,防止 XSRF 攻击的主要解决方案是 为页面的 ViewStateUserKey 属性分配一个唯一的标记。

还有

<块引用>

AntiXsrfTokenKey

也被视为一种保护。

如果您使用 ViewStateUserKeyAntiXsrfTokenKey,则所有以与 ViewStateUserKey 相同方法定义的 http 交互请求AntiXsrfTokenKey 将被视为已清理的请求,并将从潜在的污染请求列表中删除。

请注意,在 CxDOM 树中,ViewStateUserKey 和经过消毒的请求具有共同的祖先,即方法声明。