什么是全局添加 "x-frame-options: deny" header?

What is globally adding an "x-frame-options: deny" header?

我有一个客户在 Win 2k3 R2 上使用 ColdFusion 10 和 IIS 7.5。 ColdFusion 管理员使用框架。当我登录到 CF 管理员时,我在 Chrome 中看到空白屏幕,在 IE 中我看到一条消息告诉我:

This content cannot be displayed in a frame

To help protect the security of information you enter into this website, the publisher of this content does not allow it to be displayed in a frame.

我在 chrome 开发控制台中看到了一些这样的消息(每帧一条):

Refused to display 'http://localhost/CFIDE/Administrator/navserver.cfm' in a frame because it set 'X-Frame-Options' to 'DENY'.

查看 Chrome 中的响应 header,我可以看到它已设置为 DENY。

我不知道这是从哪里来的。该服务器上的所有站点现在都输出此 header。我从未明确配置任何东西来输出这个 header。我知道 CF 不会在补丁中这样做,因为它会破坏它自己的管理界面。

IIS 的根 server-wide 配置 HTTP 响应 Headers 没有 X-Frame-Options 设置,也没有任何配置的网站。

如果我明确添加 X-Frame-Options header 并将其设置为同源,我会看到 both headers(拒绝和同源)。

是否有可能是客户的安全团队安装的某些软件会注入此 header?

我正在访问本地主机上的站点,所以我无法想象它是导致问题的网络设备。它必须在服务器本身上,对吗?

有什么想法吗?

这可以在 ColdFusion 中设置,前提是它已被锁定。顺便拜访 (instancename)/wwwroot/WEB-INF/web.xml 关于点击劫持的规则。可能看起来像这样:

<filter-mapping>
    <filter-name>CFClickJackFilterDeny</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

另一种测试这是否是由 IIS 引起的方法是设置一个具有直接 HTML 页面的框架示例,如果它有效,则该块位于 ColdFusion 级别。如果直接 HTML 不起作用,则它发生在 IIS 或其他服务器位置。

在 IIS 中,可以设置 HTTP 响应 Headers server-wide(影响所有站点)and/or site-wide(仅影响当前站点)。

再次阅读您的问题,我发现我可能没有帮助到您。祝你好运。