【发布时间】:2014-02-23 23:00:10
【问题描述】:
我找到了很多关于如何删除 X-Frame-Options SAMEORIGIN 的答案,但我一直无法找到如何添加它的正确答案。
该应用程序位于 Heroku 上,并在 Rails 2.3.15 (nginx) 下运行。我不认为它是 Sinatra 应用程序(我之所以这么说只是因为没有 config.ru。一位朋友为我构建了该应用程序,但他现在无法提供帮助,所以我不肯定。)
我尝试将以下内容添加到 /app/controllers/application_controller.rb 但它只是让每个页面都返回 503:
config.action_dispatch.default_headers = { 'X-Frame-Options' => 'SAMEORIGIN' }
当失败时,我在同一个文件中尝试了这种语法:
def set_x_frame_options
response.headers["X-Frame-Options"] = "SAMEORIGIN"
end
这似乎没有破坏任何东西,但也没有添加新的 http 标头。
您可能会说,我几乎不知道我在说什么,所以请随时与我交谈,就像我在您的回答中是一个 n00b 一样。 :-)
-=-=- 编辑-=-=-=-
自己想出来为应用本身提供的页面添加 http 标头。
将此添加到 /app/controllers/application_controller.rb :
before_filter :default_headers
def default_headers headers['X-Frame-Options'] = 'SAMEORIGIN' end
仍然不确定如何将其添加到我在应用程序外部的几个页面中,在 /public/ 中,因此欢迎在这方面提供指针。
【问题讨论】:
-
嗨@StefanLasiewski,我试过了,但通过错误消息被告知我必须等待> = 8小时才能这样做。错误消息包括建议通过编辑将答案添加到初始帖子中,所以我这样做了。 :-)
-
哦,但这让它在“未回答”过滤器中变得迟钝。正在修复...
标签: ruby-on-rails heroku x-frame-options