我有一个用户可能在页面上闲置的情况,大约15分钟后,来自用户浏览器的发布请求将触发无效的CSRF令牌错误。这个问题有点帮助,但我仍然不确定如何处理错误。
Rails protect_from_forgery breaks login form if idle
我上面链接的问题中的一条评论指出了扩展Rails cookie到期时间的安全问题。确实如此吗?我应该在抛出此错误时刷新页面吗?我不想禁用CSRF保护。处理此错误并保持可用性的最佳方法是什么?我也在我的应用程序中使用了Devise。
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 4ms (ActiveRecord: 0.0ms)
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
答案 0 :(得分:0)
您链接的答案已经提供了一些您可以做什么服务器端的见解。
但是,您可以阻止陈旧表单提交客户端。一些javascript / UI调整可以帮助您。
以下是一些想法: - 显示倒计时 - 15分钟后弹出,告诉你刷新 等
有人可以随时打开代码并提交,但是在面对试图入侵的人时,你并不关心422错误。