从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]
我环顾四周,但仍然没有清楚地了解与此相关的潜在风险。有人可以对此有所了解吗?感谢。
答案 0 :(得分:1)
the Rails Security Guide中解释了风险,基本上没有它,您允许其他网站欺骗您的某个用户授予他们访问您网站的权限。
最好只为该控制器禁用它,请参阅the protect_from_forgery
docs了解如何执行此操作。