当前位置:  开发笔记 > 程序员 > 正文

Rails 3.2 - 禁用CSRF保护以执行控制器操作

如何解决《Rails3.2-禁用CSRF保护以执行控制器操作》经验,为你挑选了1个好方法。

我有一个名为ProductsController的控制器,我为.NET客户端应用程序的PUT API调用创建了一个名为set_status的动作.我已经正确设置了所有设置,但在发送请求后,我收到"无法验证CSRF令牌真实性"错误.我的应用程序控制器中有以下内容用于CSRF保护:

protect_from_forgery

为了绕过CSRF保护,我在产品控制器中添加了以下内容:

skip_before_filter :set_status

在使用此更改进行测试后,我仍然收到相同的错误消息.根据我的理解,上面的代码行应该禁用Products控制器中的set_status操作的CSRF保护,但它似乎不起作用.

有没有人知道为什么这可能不起作用?非常感谢你提前!



1> Alexander..:

我想到了!这是我的代码:

skip_before_filter :verify_authenticity_token, :only => [:set_status]

我忘记了protect_from_forgery语句创建了自己的方法.其中一种方法是verify_authenticity_token,因此它比我想象的要简单得多.我之前被卡住了,因为我没有verify_authenticity_token方法,但实际上我做了因为它是自动生成的.


在最新版本的rails中,请使用`skip_before_action`而不是`skip_before_filter`。(不建议使用skip_before_filter)
推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有