您的位置:首页 > 运维架构 > 反向代理

通过七层反向代理设置X-Frame-Options参数,实现页面frame防护/加载

2017-12-15 22:35 447 查看

#需求

 公司监控页面(elk、zabbix、what’s up等)需要做轮询展示,让前端同事写了个浏览器轮询页面。
问题:
 多数页面都能成功加载,唯独what’s up页面(网络设备监控软件页面)无法加载;报错信息如下:



#X-Frame-Options知识:

X-Frame-Options  是HTTP响应头用来给浏览器指示,是否允许页面在(iframe或frame或object)中显示的标记。
参数值有3个:
DENY              --- 表示页面不允许在frame中展示,相同域名的页面中嵌套也不允许。
SAMEORIGIN  --- 表示页面可以在相同域名页面的frame中展示。
ALLOW-FROM  --- 表示页面可以在指定来源的frame中展示。

# X-Frame-Options运维 应用场景1(防护)

防止网页被Frame
场景:当开发人员在页面中没有加X-Frame-Options信息返回头部,运维可以帮忙。
思路:nginx和haproxy做负载均衡(七层代理),在返回头中添加SAMEORIGIN信息

nginx

需安装 headers-more-nginx-module模块
#安装
wget http://nginx.org/download/nginx-1.12.2.tar.gz wget https://github.com/openresty/headers-more-nginx-module/archive/v0.33.tar.gz tar xf *.gz
yum install -y gcc gcc-c++ make openssl-devel pcre-devel
./configure  --prefix=/usr/local/newhope/nginx/ --add-module=/home/newhope/headers-more-nginx-module-0.33/
make
make install
#server 或location配置
more_set_headers X-Frame-options  SAMEORIGIN;

haproxy

#backend 配置
rspadd X-Frame-Options:\ SAMEORIGINM;

# X-Frame-Options运维 应用场景2(加载页面)

也就是解决下面问题



思路:nginx和haproxy做负载均衡(七层代理),在返回header中删除X-Frame-Options 信息

nginx

more_clear_headers "X-Frame-Options";

haproxy

rspdel X-Frame-Options:\ SAMEORIGIN


**参考文档:
haproxy官方文档:http://cbonte.github.io/haproxy-dconv/1.6/configuration.html#6
第6章 HTTP header manipulation(操纵header头)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Frame 页面展示 Refused