在 Rails 中处理 CSRF 错误
Handling CSRF Errors in Rails
我有一个场景,用户可能在页面上闲置,大约 15 分钟后来自用户浏览器的 post 请求将触发无效的 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):
您链接的答案已经提供了一些关于您可以在服务器端执行的操作的见解。
但是,您可以防止在客户端提交过时的表单。一些 javascript / UI 调整可以帮助你。
这里有一些想法:
- 显示倒计时
- 15 分钟后弹出提示您刷新
等等
有人总是可以打开代码并提交,但面对试图破解的人,您不关心 422 错误。
我有一个场景,用户可能在页面上闲置,大约 15 分钟后来自用户浏览器的 post 请求将触发无效的 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):
您链接的答案已经提供了一些关于您可以在服务器端执行的操作的见解。
但是,您可以防止在客户端提交过时的表单。一些 javascript / UI 调整可以帮助你。
这里有一些想法: - 显示倒计时 - 15 分钟后弹出提示您刷新 等等
有人总是可以打开代码并提交,但面对试图破解的人,您不关心 422 错误。