1

我主页上的每个表单都显示了不同的真实性令牌。CSRF 元标记显示了另一个真实性令牌。

他们不应该都一样吗?

我创建了一个新的 Rails 4 项目并且所有标记都匹配。

4

1 回答 1

0

我相信这是由片段缓存引起的。如果您正在缓存表单,则令牌将与其余内容一起缓存。解决这个问题的两种策略是:

  1. 使用 Javascript 从标题中的一个设置隐藏字段真实性令牌。这样做的缺点是它需要 JavaScript。
  2. 创建一个新的缓存方法,在渲染之前对获取的片段进行搜索和替换,以将真实性令牌替换为当前令牌。这样做的缺点是更复杂并增加了页面渲染时间的开销。
于 2014-02-27T21:24:56.493 回答