推荐答案
X-Frame-Options
是一个 HTTP 响应头,用于控制网页是否可以在 <frame>
、<iframe>
或 <object>
中显示。它的主要作用是防止点击劫持攻击(Clickjacking),通过限制页面被嵌入到其他网站的框架中。
用法
X-Frame-Options
有三个可能的取值:
- DENY:页面不能被嵌入到任何框架中,无论是同源还是不同源的网站。
- SAMEORIGIN:页面只能被嵌入到同源网站的框架中。
- ALLOW-FROM uri:页面只能被嵌入到指定 URI 的框架中(此选项在现代浏览器中已被弃用)。
示例
X-Frame-Options: DENY
或
X-Frame-Options: SAMEORIGIN
本题详细解读
背景
点击劫持攻击是一种恶意技术,攻击者通过将目标网站嵌入到一个透明的框架中,诱使用户在不知情的情况下点击某些按钮或链接。X-Frame-Options
头就是为了防止这种攻击而设计的。
详细解释
- DENY:这个选项是最严格的,完全禁止页面被嵌入到任何框架中。适用于那些不希望在任何情况下被嵌入的页面。
- SAMEORIGIN:这个选项允许页面被嵌入到同源网站的框架中。适用于那些只希望在同源网站中嵌入的页面。
- ALLOW-FROM uri:这个选项允许页面被嵌入到指定 URI 的框架中。但由于现代浏览器已经不再支持此选项,因此不推荐使用。
注意事项
X-Frame-Options
是一个较老的 HTTP 头,现代浏览器已经支持更强大的Content-Security-Policy
(CSP)头来替代它。- 如果同时设置了
X-Frame-Options
和Content-Security-Policy
,浏览器会优先使用Content-Security-Policy
的配置。
示例代码
X-Frame-Options: DENY
或
X-Frame-Options: SAMEORIGIN