4. 安全考虑事项 (Security Considerations)
4. 安全考虑事项 (Security Considerations)
使用 X-Frame-Options 可以防护一种被称为 "clickjacking" 的特定攻击形式. 不过, 需要注意的是, 它并不能针对所有形式的 clickjacking 或其他 UI redressing attacks 提供完整保护.
X-Frame-Options HTTP header field 指示一项 policy, 用于规定 browser 是否应在 <frame> 或 <iframe> 中渲染所传输的 resource. Servers 可以在其 HTTP responses 的 header 中声明该 policy, 以防止 clickjacking attacks, 确保其内容不会被嵌入其他 sites.
不过, 应注意 SAMEORIGIN option 允许页面在其与 framing page 具有相同 origin 时被 framed. 这一点很重要, 因为并非所有 SAMEORIGIN policy 的 implementations 都会验证所有 ancestor frames. 一些 implementations 只检查 top-level browsing context (window), 而另一些会验证整个 frame ancestor chain. 这意味着, 取决于 browser implementation, SAMEORIGIN policy 可能比 site operator 预期的更宽松. Site operators 应意识到 SAMEORIGIN option 可能在不同 user agents 中被不同解释, 从而导致行为差异. 只检查 top-level browsing context 的 implementations 可能更容易受到嵌套式 "a frame within a frame" clickjacking attack.
不鼓励将 X-Frame-Options 作为防护 clickjacking 的唯一手段. Site operators 应考虑在 X-Frame-Options 之外或替代它使用 Content Security Policy 的 frame-ancestors directive.
注意, 在支持 ALLOW-FROM option 的地方, 它允许来自特定 origin 的 framing. Site operators 应仔细考虑是否希望允许来自指定 origin 的 framing, 因为如果指定 origin 被攻陷, 这可能使 users 暴露于 clickjacking attacks.
4.1 隐私考虑事项 (Privacy Considerations)
使用 X-Frame-Options header field 不会引入 HTTP 本身固有隐私考虑之外的任何额外 privacy considerations. header field value 通常不包含关于 user 或 user browsing behavior 的任何信息.