UPD:在security.stackexchange.com上提出同样的问题,我得到的答案有所不同。请关注那里,以获得正确的答案!
我正在运行一个规模相当大的网站,每天都有成千上万的访问次数,以及相当大的用户群。
自从我开始迁移到MVC 3以来,我一直在将AntiForgeryToken用于修改受保护数据等的多种形式。
其他一些表格,比如登录/注册现在也使用AntiForgeryToken,但我首先对它们的需求感到怀疑,原因有两个......
为什么会在表格中使用/不使用令牌可能还有其他原因。我是否认为在每个帖子表格中使用令牌都是错误的/过度杀伤,如果是这样的话,我会采取什么样的表格会受益从它,哪些肯定不会受益?
答案 0 :(得分:11)
防伪令牌在用户尚未经过身份验证的网站的公共部分(例如登录和注册表单)中无用。 CSRF攻击的工作方式如下:
因此,您可以在网站的经过身份验证的部分使用反伪造令牌,其中包含可能以某种方式修改用户状态的操作。
备注:检查Referer标头以确定来自您网站的请求不安全。任何人都可以伪造请求并欺骗此标题。