【问题标题】:How to have different x-frame-options for different pages如何为不同的页面设置不同的 x-frame-options
【发布时间】:2015-07-08 17:44:32
【问题描述】:

我已在我的 .htaccess 中添加了 X-FRAME-OPTION 标头,以防止出现点击劫持问题。

<IfModule mod_headers.c>
    Header append X-Frame-Options "SAMEORIGIN"
</IfModule>

现在我需要允许通过 iframe 从外部域访问某个路由。我正在使用 PHP,并尝试通过以下方式覆盖 X-frame-option 标头:

  header('X-Frame-Options: GOFORIT');

但是,X-frame-option 似乎没有被覆盖,而是根据以下浏览器错误 (Chrome) 重新附加:

Multiple 'X-Frame-Options' headers with conflicting values ('GOFORIT, SAMEORIGIN') encountered when loading 'https://foo.com/baz/1'. Falling back to 'DENY'.

您如何覆盖某些页面的 x-frame-options?

【问题讨论】:

    标签: php apache .htaccess x-frame-options clickjacking


    【解决方案1】:

    与大多数指令一样,您可以将这些指令包装在 &lt;Location&gt;&lt;LocationMatch&gt; 中,以限制它们适用的 URL。

    此外,如果您打算覆盖标题,请使用“标题集”而不是“标题附加”。

    【讨论】:

      【解决方案2】:

      经过深思熟虑后,我最终将标题附件移动到应用程序代码中。就我而言,我使用的是 codeigniter,所以我最终将 x-frame-option 标头附加到了一个钩子中。

      Covener 的解决方案也是一种可能,但您似乎必须有权访问 apache 配置文件或虚拟主机文件,因为 &lt;location&gt;&lt;locationMatch&gt; 都不能在 .htaccess 文件中使用。

      【讨论】:

        猜你喜欢
        • 2019-09-21
        • 2015-09-02
        • 1970-01-01
        • 1970-01-01
        • 2019-03-25
        • 1970-01-01
        • 2021-05-06
        • 2015-02-06
        相关资源
        最近更新 更多