通过 Nginx 绕过 X-Frame-Options 限制
2021-12-09 本文已影响0人
皱巴巴
X-Frame-Options
HTTP 响应头是用来给浏览器指示允许一个页面是否可以在 <frame>
, <iframe>
, <embed>
或者 <object>
中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 Clickjacking 攻击。通过 Nginx 的作为正向代理,我们可以绕过 X-Frame-Options
限制成功的将第三方网页嵌入到自己的页面中。
X-Frame-Options
X-Frame-Options
响应头有三个可能的值:
- deny:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
- sameorigin: 表示该页面可以在相同域名页面的 frame 中展示。
- allow-from uri: 表示该页面可以在指定来源的 frame 中展示。
在 Chrome 尝试加载 frame 的内容时,如果 X-Frame-Options
响应头设置为禁止访问,那么 Chrome 会在控制台中显示如下错误。
通过 Nginx 正向代理访问
所谓正向代理就是当用户想获取某一台服务器上的数据而又无法直接访问服务器获取时,通过一台代理服务器“帮”他从目标服务器上取到数据。
在代理服务器上安装 nginx 并添加如下配置:
server {
listen 8080;
location / {
proxy_hide_header X-Frame-Options;
proxy_pass http://{target};
}
}
这也当请求 http://{proxy_server}:8080
时,nginx 会做代理转发到 http://{target}
,同时在返回结果的时候会隐藏掉 X-Frame-Options
相应头,这样我们自己的网页就能正常通过 iFrame 载入目标网页了。