【问题标题】:Is Frame-Options a standard or it's only a draft with no schedule to approve?Frame-Options 是标准还是只是没有批准时间表的草案?
【发布时间】:2025-12-10 03:15:02
【问题描述】:

OWASP 有一个page,他们建议使用 x-frame-options 和 frame-options 来防止点击劫持。后者在几年前被定义为draft,但我找不到有关该草案的任何实施或接受的信息。它是否被接受,是否计划或换句话说它的状态是什么,我们应该添加它还是现在只使用 x-frame-options。

【问题讨论】:

  • 据我所知,这也不是标准的,因为它的状态为“信息”,但不确定它是什么意思......

标签: security x-frame-options


【解决方案1】:

Frame-Options 不是标准的。

新标准是使用CSP's frame-ancestors directive

frame-ancestors 指令指定了可以嵌入的有效父级 使用<frame><iframe> 元素的页面。该指令不 在元素或由 Content-Security-Policy-Report-Only 标头字段。

由于这是一个新标准 (see browser support here),建议同时使用 X-Frame-Options,而您的平台支持的所有浏览器要么赶上,要么淘汰。

【讨论】:

  • 你可以使用 frame-ancestors 来做完全阻塞(比如 DENY)吗?如果没有这个指令,它会如何表现有点不清楚(我想全部允许)。
  • 这是一个白名单,所以如果您不输入任何来源,它将全部拒绝。
  • 所以,不存在 = 允许所有,存在空列表 = 阻止所有。太好了,谢谢你的帮助!
  • 这里 (w3.org/TR/CSP11/#directive-frame-ancestors) 确实表明您可以使用 'none'。
【解决方案2】:

建议无论草稿是否被批准,服务器都以X-Frame-Options 标头进行响应。我从Acunetix漏洞描述中提取了以下内容:

点击劫持(用户界面补救攻击、UI 补救攻击、UI 补救)是一种恶意技术,它诱骗 Web 用户点击与用户认为他们正在点击的内容不同的内容,从而可能泄露机密信息或控制他们的电脑同时点击看似无害的网页。

我的印象是草稿不是标准化的(至少在本文发布时),因为 X-Frame-Options 通过不同的浏览器实现不同,导致意外的结果和行为——然而,这只是我的猜测,可能是为了完全不同的原因。

【讨论】:

    最近更新 更多