【发布时间】:2012-12-13 22:52:16
【问题描述】:
在我的所有表单都有@Html.AntiForgeryToken() 的基本 MVC 项目中,我见证了特定用户会话的 所有 表单的令牌 (cookie) 值始终相同。这是为什么?我部分理解这一点(否则会有很多问题,例如后退按钮)。但是为什么不使用“salt”为不同的形式做出不同的选择:
“此方法已弃用。请改用 AntiForgeryToken() 方法。 要指定要嵌入到令牌中的自定义数据,请使用静态 AntiForgeryConfig.AdditionalDataProvider 属性。”
为什么它这么大(在我的示例中为 207 个字节,用户身份名称为 7 个字符)?标准会话 ID 更短 (41)。
【问题讨论】:
-
AntiForgeryToken不是隐藏的表单值吗? -
是的。但是生成的令牌存储在 cookie 和隐藏字段中。在发布时,它们的值必须相同才能通过验证。
标签: asp.net .net asp.net-mvc-3 security