15

在我正在处理的 Ruby on Rails 4 应用程序中,我需要创建一个页面,该页面将被拉入托管在foo.bar.com服务器上的 iframe 中,所以我有这个控制器方法:

def iframed_page
  response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://foo.bar.com"
end

..现在事实证明,客户也希望我也加入白名单http://foo.dev.bar.com

我知道要设置 X-FRAME-OPTIONS,“ALLOW-FROM”选项不允许多个子域。但是既然这是同一个根域,有不同的子域,会不会更灵活一点呢?例如,我可以做类似的事情

response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://*.bar.com"

也?

4

1 回答 1

18

您可以改用Content-Security-Policy标题,但它不适用于所有内容

response.headers["X-Content-Security-Policy"] = "frame-ancestors http://*.bar.com";
response.headers["Content-Security-Policy"] = "frame-ancestors http://*.bar.com";
  • Content-Security-Policy将覆盖X-Frame-Options现代浏览器
  • X-Content-Security-Policy将覆盖X-Frame-OptionsIE11
于 2016-05-17T18:06:19.587 回答