【问题标题】:X-FRAME-OPTIONS allow-from a top-level domain, and all subsequent sub-domainsX-FRAME-OPTIONS 允许来自顶级域,以及所有后续子域
【发布时间】:2017-02-13 03:59:14
【问题描述】:

我遇到了难题,真的需要一些帮助...

我很难找到有关如何启用网站的信息 - 已经有 X-FRAME-OPTIONS: SAMEORIGIN 编码 - 从几个特定域加载到 iframe(即 domain.com 将是通用顶级域名)。问题是,虽然这很简单——使用 X-FRAME-OPTIONS: ALLOW-FROM http://domain.com-,如果这是唯一需要通过 iframe 访问目标站点的域。然而,实际上,我实际上需要弄清楚如何为(当前)三个子域设置它 - 未来可能会允许更多 - 原始 TLD(即 example1.domain.com、example2. domain.com 和 example3.domain.com),以便能够在加载到预期的 iframe 中时访问该站点。到目前为止,我能找到的关于这个问题的唯一信息已经有点过时了,并且说没有可能的方法来允许特定域的通配符引用(或任何其他形式的多域引用)也适用于它的后续子域(或任何类似的东西),这些子域似乎既能有效地按预期运行,又能防止恶意个人的“点击劫持”发生。我希望比我更博学(并且更精通 X-FRAME-OPTIONS)的人实际上能够为我提供一个可行的解决方案。

提前致谢。

【问题讨论】:

  • ALLOW-FROM 甚至还没有适当的浏览器支持,caniuse.com/#feat=x-frame-options
  • @CBroe ...我知道(有点遗憾,他们还没有真正解决这个问题)。该站点不是我托管的站点,但我所在地区的客户需要引用它。所以,在这里我想弄清楚如何帮助他们在编码中保持他们想要的东西,同时努力满足我客户的需求。

标签: x-frame-options


【解决方案1】:

如果您可以接受 X-Frame-Options 之外的方法,请考虑创建一个服务器到服务器 API,该 API 可以被调用来访问相关内容,然后允许它在不需要框架的情况下显示。

也就是说,ClientSite 不是包含引用 FramedPage 的 IFRAME,后者在 Web 浏览器中进行页面组装,ClientSite 在后端调用 API 直接从您那里获取内容并插入内容在服务器上 将页面传送到用户的网络浏览器之前进入页面。

这为您提供了极大的灵活性。您可能需要 API 密钥、应用基本的服务器到服务器 IP 地址白名单或任何适合的方法,以防止不需要的 API 调用者。

【讨论】:

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