Internet Explorer X-Frame-Options ALLOW-FROM无法在IE 11和Edge

时间:2016-08-08 19:48:56

标签: html internet-explorer iframe xss x-frame-options

使用X-Frame-Options将一个网站作为iFrame嵌入另一个(不同的域)IE 11和Edge时,我遇到了问题。我的研究和经验表明IE尚不支持CSP Level 2框架祖先,所以我必须使用X-Frame-Options

我添加了响应标头 X-Frame-Options: ALLOW-FROM https://<mysite>.com 到需要嵌入的网站。

这些是受保护的网站,因此我无法向此社区提供真实的网址。

当我启动包含来自第二个网站的内容的iFrame的主网站时,我能够在iframe内容的响应中看到X-Frame-Options标头,并且它看起来正确应用。但是,IE表示“...修改此页面以帮助防止跨站点脚本”,我的框架仅包含#符号。

由于时间安排和内部IT延迟,我无法将两个网站托管在同一个域中。

任何人都可以帮助解释我在实施X-Frame-Options时做错了什么,或者是否有其他方法可以达到预期的效果?

2 个答案:

答案 0 :(得分:1)

事实证明,问题与帧无关。当通过嵌入式iframe直接访问时,框架内容具有相同的XSS错误/注释。错误的时间显示让我失望,因为它恰好是CSP 2级框架祖先的实施。

我已经用MS打开了一个案例,以确定XSS引擎不喜欢的内容是什么,并且必须在IE浏览器中使用X-XSS-Protection:0响应标头禁用XSS。

答案 1 :(得分:0)

IE 11不遵循standard,这意味着不能使用“ *”,因此必须使用http / https来提供域名。

  def cors_set_access_control_headers
    headers["Access-Control-Allow-Origin"] = "*"
    headers["Access-Control-Allow-Methods"] = "GET"
    headers["Access-Control-Request-Method"] = "*"
    headers["Access-Control-Allow-Headers"] = "Origin, X-Requested-With, Content-Type, Accept, Authorization"
    headers["X-Frame-Options"] = "ALLOW-FROM http://172.16.1.159"
    headers["X-XSS-Protection"] = "0"
  end