Rails 3 protect_from_forgery无法正常工作?

Die*_*ego 5 ruby-on-rails csrf protect-from-forgery

我正在使用Rails 3.0.2,protect_from_forgery默认情况下它在application_controller.rb中.

我想触发一个InvalidAuthenticityToken.
要做到这一点,我已将此javascript添加到我的页面:

$('input[name=authenticity_token]').val('aaa')
Run Code Online (Sandbox Code Playgroud)

使用Firebug检查DOM我看到authenticity_token隐藏字段已正确更新.

如果我提交表单并从服务器检查日志,我会看到相对参数已正确设置为'aaa'.我希望得到一段InvalidAuthenticityToken时间处理请求,因为它是正确的!

这怎么可能?

jde*_*eno 12

真实性令牌/ csrf行为的文档已过期.该InvalidAuthenticityToken例外在这些情况下不再抛出,而不是你的会话刚复位.如果您想以不同方式(或旧方法)处理此问题,您可以在handle_unverified_request控制器上定义自己的行为.