使用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
时做错了什么,或者是否有其他方法可以达到预期的效果?
答案 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