protect_from_forgery 的风险 :except => [:new] 在 Rails 4.2.0 应用程序中

Risks with protect_from_forgery :except => [:new] in Rails 4.2.0 app

从 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 => :new 添加到 application controller 后,异常消失了。现在它在应用程序的 application controller:

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

我在网上四处张望,仍然没有清楚地了解与此相关的潜在风险except。有人会阐明这一点吗?

风险在 the Rails Security Guide 中进行了解释,基本上没有它,您就允许另一个网站欺骗您的用户之一,让他们访问您的网站。

你最好只为那个控制器禁用它,请参阅the protect_from_forgery docs了解如何做到这一点。