我们刚刚对使用ASP.NET MVC构建的应用程序进行了一些渗透测试,其中一个建议是表单中AntiForgeryToken的值可以多次重新提交,一次使用后没有过期。
根据同步器令牌模式周围的OWASP recommendations:
“通常,开发人员只需为当前会话生成一次此令牌。”
我认为ASP.NET MVC AntiForgeryToken的工作原理。
如果我们必须打仗,是否有可能在每次验证后让AntiForgeryToken重新生成一个新值?
答案 0 :(得分:8)
防伪令牌只是一个反XSRF令牌。特别是,不一次性使用nonce。如果您的应用程序需要一次性使用nonce,则不能将防伪令牌用于此目的。没有内置功能。</ p>
答案 1 :(得分:-1)
也许您可以使用the three parameters constructor来使用AntiForgeryToken。
始终建议使用salt,但通过域和路径限制令牌将使您的令牌更安全且每页唯一。
如果您没有XSS漏洞,这个问题在您的网站上不会是一个大问题:) //我写了这个吗?当然,我没有很好地解读这个问题。
干杯!