使用会话令牌实现CSRF保护

时间:2014-01-06 06:26:36

标签: csrf csrf-protection

我试图在我的新项目中实施CSRF保护。我通过为每个表单创建会话令牌来做同样的事情,并且令牌存储在表单中的隐藏字段中。每次提交表单时,我都会检查POST中的令牌和会话中的令牌是否相同。如果它们相同,则执行所需的操作并更新会话令牌。

效果很好但是当我们刷新提交的页面时会出现实际问题。然后发生令牌不匹配。

我的问题是,对于每个表单使用单个令牌是否安全,并且没有为每个表单提交更新令牌?这会阻止CSRF吗?

1 个答案:

答案 0 :(得分:0)

是的,无需更新CSRF令牌。每个用户会话只需要是唯一的。

由于攻击者无法读取隐藏表单字段的值,因此在会话期间可以重用相同的值。通过更新此值不会实现额外的安全性。

但是,每个用户会话肯定应该是唯一值。不同的用户应该有不同的令牌,如果同一用户再次登录,最好使之前的令牌失效。