请解释 X-Frame-Options 头的作用和用法

推荐答案

X-Frame-Options 是一个 HTTP 响应头,用于控制网页是否可以在 <frame><iframe><object> 中显示。它的主要作用是防止点击劫持攻击(Clickjacking),通过限制页面被嵌入到其他网站的框架中。

用法

X-Frame-Options 有三个可能的取值:

  1. DENY:页面不能被嵌入到任何框架中,无论是同源还是不同源的网站。
  2. SAMEORIGIN:页面只能被嵌入到同源网站的框架中。
  3. ALLOW-FROM uri:页面只能被嵌入到指定 URI 的框架中(此选项在现代浏览器中已被弃用)。

示例

本题详细解读

背景

点击劫持攻击是一种恶意技术,攻击者通过将目标网站嵌入到一个透明的框架中,诱使用户在不知情的情况下点击某些按钮或链接。X-Frame-Options 头就是为了防止这种攻击而设计的。

详细解释

  • DENY:这个选项是最严格的,完全禁止页面被嵌入到任何框架中。适用于那些不希望在任何情况下被嵌入的页面。
  • SAMEORIGIN:这个选项允许页面被嵌入到同源网站的框架中。适用于那些只希望在同源网站中嵌入的页面。
  • ALLOW-FROM uri:这个选项允许页面被嵌入到指定 URI 的框架中。但由于现代浏览器已经不再支持此选项,因此不推荐使用。

注意事项

  • X-Frame-Options 是一个较老的 HTTP 头,现代浏览器已经支持更强大的 Content-Security-Policy(CSP)头来替代它。
  • 如果同时设置了 X-Frame-OptionsContent-Security-Policy,浏览器会优先使用 Content-Security-Policy 的配置。

示例代码

纠错
反馈