Nginx 增加X-Frame-Options配置,防止页面被嵌套存在 CrossFrame

Oct 29, 2017 阅读(680)

标签: Nginx

image.png

系统发布后使用 360网站安全扫描,发现存在 [轻微]X-Frame-Options头未设置 漏洞,漏洞的根本原因是目标服务器没有返回一个X-Frame-Options头。X-Frame-Options HTTP 响应头是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来保证他们的内容不会被嵌入到其它网站中,以来避免点击劫持。

利用这个漏洞攻击者可以使用一个透明的、不可见的iframe,覆盖在目标网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击iframe页面的一些功能性按钮上,导致被劫持。

解决方案也很简单修改web服务器配置,添加X-frame-options响应头。在此记录 Nginx 服务器的修改如下:

location / {
                #可以在相同域名页面的 frame 中展示
                add_header X-Frame-Options SAMEORIGIN;
                #将当前Host头域填充成客户端的地址
                proxy_set_header Host $http_host;
                proxy_pass http://127.0.0.1:8080;
        }

注:配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中。