我已将下面的代码放在我的表单中。然后,该请求将在其 cookie 中显示一个令牌,并且在生成我的 html 时还会创建一个隐藏字段。请注意,cookie 和隐藏字段都有不同的值。
<%= System.Web.Helpers.AntiForgery.GetHtml() %>
每次我回发时,我都有下面显示的验证器。
if (IsPostBack)
{
AntiForgery.Validate();
}
奇怪的是,即使我强行更改隐藏字段中的 cookie(使用 burp 之类的 MITM 软件)。验证器甚至不会检测到令牌已被更改。
我已经列出了生成的令牌(刷新页面几次)并尝试使用列出的令牌之一来操作最新的请求。毫不奇怪,验证器没有发现错误。
我读到令牌是基于会话的,所以我尝试在另一个会话(另一个用户)上使用令牌。而且,验证器仍然没有捕获任何东西。
更改 cookie 中的令牌会捕获错误,但该 cookie 令牌是恒定的,并且对于所有表单都是相同的。
这个问题有什么问题或任何其他缺失的部分吗?