我们刚刚在我们使用 ASP.NET MVC 构建的应用程序上进行了一些渗透测试,并且返回的建议之一是 Form 中的 AntiForgeryToken 的值可以多次重新提交并且不会过期单次使用后。
根据围绕 Synchronizer Token Pattern的OWASP 建议:
“一般来说,开发者只需要为当前会话生成一次这个令牌。”
这就是我认为 ASP.NET MVC AntiForgeryToken 的工作方式。
万一我们不得不打仗,是否有可能让 AntiForgeryToken 在每次验证后重新生成一个新值?