内容安全策略框架祖先无法在IE 11中工作

时间:2019-05-03 16:46:18

标签: asp.net content-security-policy

目的是阻止其他网站在iframe中显示我们网站的内容。

由于网站的网址,我无法使用X-Frame-Options = SAMEORIGIN。主网站为www.xyz.com,子网站为sec.xyz.com。

所以我诉诸内容安全政策(...代表其他域等)

<httpProtocol>
            <customHeaders>
                <add name="Content-Security-Policy" value="default-src 'self' localhost ...; script-src 'unsafe-inline' 'unsafe-eval' *;               style-src 'unsafe-inline' *; img-src * data; font-src * data:;               frame-ancestors 'self' localhost ...;" />
            </customHeaders>
        </httpProtocol>

FF和Chrome不会在ipage测试页中显示该网站。

enter image description here

现在IE 11显示了iframe内部的网站,因为不支持frame-ancestors。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors

我尝试在全局文件中添加标题X-Content-Security-Policy,但IE 11仍显示该站点。

protected void Application_BeginRequest(object sender, EventArgs e)
    {
        HttpContext.Current.Response.AddHeader("X-Content-Security-Policy", "frame-ancestors 'self' localhost ...");
    }

enter image description here

如何使IE 11遵守标头X-Content-Security-Policy

1 个答案:

答案 0 :(得分:0)

IE不支持frame-ancestors的{​​{1}}。使用X-Content-Security-PolicyX-Frame-Options定位IE。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options