什么是X-Frame-Options
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面是否可以在 <frame>, <iframe>, <embed> 或者<object> 中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 Clickjacking 攻击。通过Nginx 的作为正向代理,我们可以绕过 X-Frame-Options 限制成功的将第三方网页嵌入到自己的页面中。
X-Frame-Options 默认配置值
- deny:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
- sameorigin: 表示该页面可以在相同域名页面的 frame 中展示。
- allow-from uri: 表示该页面可以在指定来源的 frame 中展示。
工作中遇到的错误现象
线上有个需求,有一个应用页面需要嵌套另一个网站的页面,此时报错内容如下:

解决办法
由于无法更改对方url返回X-Frame-Options值的设置,可以通过nginx正向代理使得在返回内容中隐藏掉X-Frame-Options的返回。
nginx的配置
server {
listen 80;
location / {
proxy_hide_header X-Frame-Options; //隐藏掉返回头部
proxy_pass http://xxxxx;
}
}
结果
此时通过配置内网dns解析或者host的方式,使得应用访问此代理域名,可以实现页面的嵌入。