AntiForgeryToken 用于防止 CSRF 攻击,但是 MSDN 上的链接并没有让我深入了解 AntiForgeryToken 究竟是做什么的,或者它是如何工作的,或者为什么事情会以它们的方式完成。
据我所知,它在网页和 cookie 中创建了一个哈希。它们中的一个或两个都使用 hashed IPrincipal.Name
,并使用对称加密。
任何人都可以阐明:
- AntiForgeryToken 如何在内部工作
- 它应该用来保护什么
- 它不应该用来保护什么
- 上述#1 的实施选择背后的原因是什么?
- 例子:
- 实施是否不受“DoubleSubmit”cookie 和其他常见漏洞的影响
- 如果用户打开多个选项卡,是否存在实施问题
- 是什么让 MSFT 的实施与 SANS 的实施不同
- 例子: