如何在 Rails 应用程序中关闭 CSRF 保护?
Posted
技术标签:
【中文标题】如何在 Rails 应用程序中关闭 CSRF 保护?【英文标题】:How do I turn off CSRF protection in a rails app? 【发布时间】:2010-09-13 09:23:14 【问题描述】:Rails 中内置的 CSRF 预防对我们正在进行的一些自动化负载测试造成了一些问题,我想在整个过程中将其关闭。我该怎么做?
【问题讨论】:
【参考方案1】:我喜欢有明确答案的简单问题。
#I go in application.rb
self.allow_forgery_protection = false
如果您只想为测试执行此操作,您可以将其移至环境文件之一(显然,您将触摸Application
而不是self
)。你也可以这样写:
#I still go in application.rb
self.allow_forgery_protection = false unless ENV["RAILS_ENV"] == "production"
详情请参阅here。 (延续 Rails 的优良传统,即在 2 年前的博文中记录核心功能,这些博文是从提交日志中提炼出来的。)
【讨论】:
或简称self.allow_forgery_protection = ENV["RAILS_ENV"] == "production"
得到以下错误 - /home/vipin8169/.rvm/gems/ruby-2.2.1/gems/railties-4.2.0/lib/rails/railtie.rb:196:in
method_missing': undefined method allow_forgery_protection=' for FertilityApp::Application:Class (NoMethodError)
【参考方案2】:
在 Rails 3 中,删除 app/controllers/application_controller.rb
中的 protect_from_forgery
命令
【讨论】:
以上是关于如何在 Rails 应用程序中关闭 CSRF 保护?的主要内容,如果未能解决你的问题,请参考以下文章