Skip to main content

4. Security Considerations (安全考虑)

4. Security Considerations (安全考虑)

X-Frame-Options 的使用可以防御一种被称为 "点击劫持" (clickjacking) 的特定攻击形式。然而, 重要的是要注意, 它并不能提供对所有形式的点击劫持或其他 UI 伪装 (UI redressing) 攻击的完全保护。

X-Frame-Options HTTP 头字段指示了一项策略, 该策略规定浏览器是否应该在 <frame><iframe> 中渲染所传输的资源。服务器可以在其 HTTP 响应的头部中声明此策略, 以防止点击劫持攻击, 确保其内容不会被嵌入到其他站点中。

然而, 应该注意的是, SAMEORIGIN 选项允许页面被框架化, 如果它们与框架化页面具有相同的来源 (origin)。这很重要, 因为并非所有 SAMEORIGIN 策略的实现都会验证所有祖先框架。一些实现仅检查顶级浏览上下文 (窗口), 而其他实现则验证整个框架祖先链。这意味着 SAMEORIGIN 策略可能比站点运营者预期的更宽松, 具体取决于浏览器实现。站点运营者应该意识到 SAMEORIGIN 选项可能在不同的用户代理中被不同地解释, 从而导致行为的差异。仅检查顶级浏览上下文的实现可能更容易受到嵌套 "框架中的框架" 类型的点击劫持攻击。

不鼓励仅使用 X-Frame-Options 作为防御点击劫持的唯一手段。站点运营者应该考虑使用 Content Security Policy 的 frame-ancestors 指令来补充或替代 X-Frame-Options。

请注意, ALLOW-FROM 选项 (在支持的情况下) 允许来自特定来源的框架化。站点运营者应该仔细考虑是否希望允许来自指定来源的框架化, 因为如果指定的来源遭到入侵, 这可能会使用户面临点击劫持攻击。

4.1 Privacy Considerations (隐私考虑)

X-Frame-Options 头字段的使用不会引入 HTTP 本身固有的隐私考虑之外的任何额外隐私考虑。头字段值通常不包含有关用户或用户浏览行为的任何信息。