【问题标题】:Change the X-Frame-Options to allow all domains更改 X-Frame-Options 以允许所有域
【发布时间】:2017-11-10 05:22:49
【问题描述】:

我正在尝试使用我的某个站点作为来自我的另一个站点的 iframe

我的问题是 - 另一个站点总是不断更改他的 IP 地址并且没有域名。

所以,我读到您可以通过将此 lint 添加到 /etc/nginx/nginx.conf 来分配特定域:

 add_header X-Frame-Options "ALLOW-FROM https://subdomain.example.com/";

我的问题是:是否可以允许将我的网站作为 iframe 从所有 IP 地址和域导入?为了实现这一点,我应该写什么?

我使用的是 Ubuntu 16.04 和 nginx 1.10.0。

【问题讨论】:

    标签: linux ubuntu nginx cors x-frame-options


    【解决方案1】:

    如果设置了,则只能将其设置为 DENY、SAMEORIGIN 或 ALLOW-FROM(特定来源)。

    允许所有域是默认设置。如果需要,请不要设置 X-Frame-Options 标头。

    请注意,X-Frame-Options 的继任者 — CSP's frame-ancestors directive — 接受允许来源的 list,因此您可以轻松地允许 some 来源而不是没有、一个或全部.

    【讨论】:

      【解决方案2】:

      ALLOWALL 是默认值。

      有时框架 MVC(如 Rails、Laravel、Django 等)会将 X_FRAME_OPTIONS 设置为 SAMEORIGIN,因此可能需要将其重置为原点 ALLOWALL 值。

      【讨论】:

      • ALLOWALL 不是一个可接受的值:developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…
      • 如前所述,ALLOWALL 不是X-Frame-Options 标头的有效指令。无效的值(与任何无效的标头一样)应该被浏览器简单地忽略 - 这就是这里会发生的事情 - 这是“默认值”(没有标头 - 允许所有访问)。如果这是所需的结果,最好简单地删除标题。
      【解决方案3】:

      你可以从服务器检查远程主机的 IP 地址。然后,您可以发送一个 X-Frame-Options 响应 HTTP 标头,其值为:“Allow-From ip-address”,其中 ip address 是尝试在您的服务器上嵌入内容的远程 IP 地址。这将允许所有使用浏览器 IP 地址访问的网站嵌入您的网站。

      另一种选择是将内容嵌入 iframe 并在 iframe 源 URL 中包含域名。域名参数可以被服务器读取并包含在 X-Frame-Options 响应头中。

      【讨论】:

        猜你喜欢
        • 2018-05-04
        • 2017-02-13
        • 1970-01-01
        • 2014-11-14
        • 1970-01-01
        • 2015-06-04
        • 2013-02-22
        • 2014-12-31
        • 1970-01-01
        相关资源
        最近更新 更多