X-Frame-Options 设置后为什么页面还是能被嵌入 iframe?

一红爱 阅读 15

我在项目里加了 X-Frame-Options: DENY 响应头,但本地开发时用 iframe 引入自己的页面居然还能加载出来,是不是我配错了?

后端是用 Express 写的,代码大概是这样:

app.use((req, res, next) => {
  res.setHeader('X-Frame-Options', 'DENY');
  next();
});

浏览器控制台也没报错,但 iframe 里内容正常显示,这不科学啊……

我来解答 赞 18 收藏
二维码
手机扫码查看
1 条解答
书生シ爱娜
你本地开发用的可能是 localhost 或 127.0.0.1,现代浏览器对同源 iframe 嵌套有宽松策略,不会严格拦截 X-Frame-Options。
换成真实域名(比如改 hosts 指向 127.0.0.1)再测,或者加 res.setHeader('Content-Security-Policy', 'frame-ancestors 'none''),后者更可靠。

搞定。
点赞 2
2026-02-26 13:00