为框架祖先生成重复的内容安全策略(IIS 和 Chrome)

问题描述 投票:0回答:1

我已将 Web 应用程序 (sub.domain.com) 发布到 Internet 信息服务 (IIS) 虚拟服务器,现在希望将其显示在 www.otherdomain.com 上的 iFrame 中。 Web 服务器上发布的 web.config 文件不包含 CSP 指令,直到使用如下所示的自定义键/值对在 IIS 中自动添加 CSP 指令:

HTTP Response Header used in IIS

然后修改

web.config 文件以包含以下内容:

<httpProtocol> <customHeaders> <add name="Content-Security-Policy" value="frame-ancestors *.otherdomain.com www.otherdomain.com" /> </customHeaders> </httpProtocol>
到目前为止一切顺利。问题是,当我尝试在 iFrame 中显示页面时,出现以下错误:

拒绝构建“https://sub.domain.com”,因为祖先违反了以下内容安全策略指令:“frame-ancestors 'self'">

当我在 Chrome 开发工具中查看生成的响应标头时,它显示存在

两个不同的框架祖先指令: 2 directives shown in Chrome Dev Tools

问题:

1。什么可以自动生成第一个导演(“框架祖先‘自我’”)? IIS? Chrome>?

2。如果存在两个标头,是否会忽略第二个指令(通过 IIS 添加的自定义指令)。

3.我可以尝试什么来解决该错误?

google-chrome iis iframe content-security-policy
1个回答
0
投票
    标头显然未在 IIS 中的当前级别或父级别设置,因为它没有显示在您提供的图像中。它可能在代码中设置,默认配置在框架、代理、负载均衡器或 IIS 的子级别。您只需查看所有可能的来源即可。
  1. 如果存在多个策略,则所有策略均适用,您需要全部通过。实际上,该政策将是“自我”的。
  2. 检查所有组件。这很可能是框架插入的默认标头。
© www.soinside.com 2019 - 2024. All rights reserved.