最近需要在大屏网页中嵌套跳转一些网站地址,使用 iframe 页面嵌套时会提示X-Frame-Options问题,具体报错如下:
Refused to display 'xxxxxxxxx' in a frame because it set multiple 'X-Frame-Options' headers with conflicting values ('DENY'). Falling back to 'deny'.
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在<frame>、<iframe>、<embed> 或者 <object> 中展现的标记。
站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免点击劫持攻击。
X-Frame-Options 可以有几个参数:
配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置中:
Nginx 配置了 add_header X-Frame-Options SAMEORIGIN;
之后
发现报错变了,如下:
Refused to display 'xxxxxxxxx' in a frame because it set multiple 'X-Frame-Options' headers with conflicting values ('DENY, SANEORIGIN'). Falling back to 'deny'.
网上查了很多博客资料,还是没找到原因,
发现有些评论说可以先屏蔽再设置...
location /xxxxxx/ {
proxy_hide_header X-Frame-Options; //忽略返回头的X-Frame-Options
add_header X-Frame-Options SAMEORIGIN always; //设置X-Frame-Options
proxy_pass http://xxxxxxxx/xxxxxx/;
}
试了之后发现可以正常打开页面了,就是不知道有没有安全隐患,希望没事吧。这个问题后面持续跟进,先这样吧...