MVC AntiForgeryToken重用以前生成的令牌

jcg*_*iam 4 xss asp.net-mvc cross-site asp.net-mvc-4

目前我正在研究ASP .NET MVC 4应用程序.我们使用提供的[ValidateAntiForgeryToken]和相应的@Html.AntiForgeryToken()来生成我们使用POST提交的表单中的隐藏字段.

到目前为止,该机制似乎正常工作,因为如果我没有提供令牌作为输入隐藏字段到目标操作注释与[ValidateAntiForgeryToken]错误按预期引发.

但是我觉得很奇怪,如果我使用Firebug或Chrome检查器捕获了几个生成的令牌,将它们复制到记事本然后转到另一个页面,该页面也使用AntiForgeryToken并基本上用任何先前生成的令牌替换隐藏字段,这是一个错误没有提出.我期望总是有一个1:1的关系(Page Hidden Field - ValidationAtServer),因为如果某人能够获得该值,将能够伪造任何请求到需要AntiForgeryToken的应用程序中的任何形式

我的印象是,一旦生成令牌,就不可能重复使用相同的令牌,我认为这是框架本身的安全漏洞.

如果有人能够提供更多的洞察力,将会非常感激它.

And*_*bal 5

AntiForgeryToken是会话库,因此每个用户具有相同的令牌,但另一个用户将具有不同的令牌.这种震荡可能对您有用:AntiForgeryToken根据请求进行更改