X-Frame-Options 是一个 HTTP 响应头,用于告诉浏览器当前页面是否允许被嵌入到 <iframe>、<frame> 或 <object> 元素中。这是防范点击劫持攻击的主要手段之一。
X-Frame-Options 目前有效的值有两个:DENY (完全禁止嵌入) 和 SAMEORIGIN (只允许同源页面嵌入)。第三个值 ALLOW-FROM uri (允许指定来源嵌入) 已被废弃,根据 MDN 参考文档 (2026 年 7 月更新版),现代浏览器遇到该指令时会忽略整个响应头,也就是说写上 ALLOW-FROM 反而会让保护失效;需要只允许特定来源时应使用 CSP 的 frame-ancestors 指令。另外,该响应头只能通过 HTTP 响应头生效,写在 meta 标签的 http-equiv 中不起作用。
在 URL 缩短服务中,X-Frame-Options 应该设置为 DENY 或 SAMEORIGIN,防止服务页面被恶意网站嵌入。特别是管理界面和链接创建页面,必须严格限制 iframe 嵌入。
需要注意的是,X-Frame-Options 只能指定一个值,无法同时允许多个不同来源。如果需要更精细的控制,应使用 CSP 的 frame-ancestors 指令,它支持多个来源和通配符。同时设置两者时,应让两者的值保持一致,以便在只识别其中一种的环境中保护也不会中断。