Rails 4真实性令牌应该从形式到形式不同吗?

时间:2013-10-05 03:51:40

标签: ruby-on-rails ruby-on-rails-4 csrf authenticity-token

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

它们不应该都一样吗?

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

1 个答案:

答案 0 :(得分:0)

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

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