ValidateAntiForgeryToken为会话预先显示cookie值

时间:2011-11-07 14:30:29

标签: asp.net-mvc asp.net-mvc-3

我不确定这是MVC框架上的“功能”还是错误。

在使用[ValidateAntiForgeryToken]属性实现一些操作时,我注意到虽然在视图上, _ RequestVerificationToken 隐藏文本字段发生了变化每次重新加载页面时,Cookie _RequestVerificationToken_Lw __ 始终保持相同的会话长度,即所有视图都将使用相同的Cookie值比较。

从我可以收集的内容来看,视图上的值是不同的,因为它每次都会被加密,但实际上,就像cookie一样,它也与会话长度的cookie相同。

我的问题是。我们不应该强制这个cookie为每个不同的请求具有不同的值吗?

我原本以为在会话期间保持相同的cookie值是一个安全风险,因为恶意黑客可以抓住它并且我们的CSRF(跨站点请求伪造)预防措施将会失控

是否有办法强制此Cookie为每个请求获取不同的值?

1 个答案:

答案 0 :(得分:2)

该cookie仍然是三管齐下保护的一部分。

他们必须

  1. Cookie
  2. 您的登录名(因此您的表单是auth cookie)
  3. 页面上的防伪标记。
  4. 考虑到这一点并使用ssl(你应该总是使用它!),因为令牌不是一次性使用令牌,你的保护级别可能不会改变。