使用protect_from_forgery的风险:except => [:new]在rails 4.2.0 app中

时间:2015-02-22 18:38:15

标签: ruby-on-rails ruby-on-rails-4 csrf

从3.2升级到rails 4.2.0后,用于创建新日志的ajax调用在集成规范中导致异常:

Failure/Error: click_link 'New Log'
     ActionController::InvalidCrossOriginRequest:
       Security warning: an embedded <script> tag on another site requested protected JavaScript. If you know what you're doing, go ahead and disable forgery protection on this action to permit cross-origin JavaScript embedding.

这是一个New Log按钮:

link_to t('New Log'), commonx.new_log_path(:resource_id => @part.id,  :format => :js), :remote => true

添加后:except =&gt; :新application controller,异常消失了。现在它在应用程序的application controller

中看起来像这样
protect_from_forgery :except => [:new]

我环顾四周,但仍然没有清楚地了解与此相关的潜在风险。有人可以对此有所了解吗?感谢。

1 个答案:

答案 0 :(得分:1)

the Rails Security Guide中解释了风险,基本上没有它,您允许其他网站欺骗您的某个用户授予他们访问您网站的权限。

最好只为该控制器禁用它,请参阅the protect_from_forgery docs了解如何执行此操作。