【发布时间】:2014-12-31 23:20:34
【问题描述】:
在我正在处理的 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"
还有吗?
【问题讨论】:
-
我读过这个问题,非常感谢。它没有解释任何关于 Ruby on Rails 的内容,或者如果您有同一个根域的两个不同子域该怎么办。
-
当我说:您的问题并不是 Rails 特定的问题时,我并不想争论,而且上面链接的问题/答案确实提供了有关使用
Content-Security-Policy的通配符前缀的信息。不管怎样,X-FRAME-OPTIONS似乎不是最有前瞻性的选择。 -
上面链接的问题清楚地表明
Content-Security-Policy不适用于所有浏览器,相关指令frame-ancestors仅适用于Chrome 和Firefox。此外,该答案关于X-FRAME-OPTIONS的陈述也已过时。
标签: ruby-on-rails iframe ruby-on-rails-4 http-headers x-frame-options