Rails CSRF令牌 - 它们会过期吗?

时间:2011-10-12 18:05:13

标签: ruby-on-rails ruby-on-rails-3

我注意到如果你使用无效的CSRF令牌发帖,rails / devise会自动注销你。

我有一个不刷新页面的应用程序,用户长时间坐在实时页面上。每隔一段时间,用户就会被踢出局。我想知道CSRF令牌是否到期,使其失效。

这就是为什么我要学习,Rails CSRF令牌到期了吗?是否有时间设置?

由于

1 个答案:

答案 0 :(得分:26)

Rails中的CSRF保护通过将随机值存储为正在提交的表单中的字段以及用户会话中来实现。如果在提交表单时值不匹配,Rails会拒绝表单提交请求。

如果你在Rails中使用默认的cookie会话存储,那么会话将不会过期(直到cookie完成)。如果您正在使用其他内容(文件或数据库支持的会话),那么是,如果这些会话过期,表单提交将失败,并显示CSRF错误。

因此,如果您使用基于cookie的会话(默认),请检查cookie到期日期。如果看起来没问题,可能还有其他一些问题。