通过七层反向代理设置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头)
相关文章推荐
- 通过使页面动态加载不同CSS实现多界面
- 通过使页面动态加载不同CSS实现多界面
- 页面间固定参数,通过cookie传值的实现方法
- Servlet:通过初始参数实现权限访问某个文件、页面
- Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数
- 页面加载后检查用户登录状态,通过ajax实现
- 使用ADF-BC 实现查询功能之四:通过代码动态设置Where条件参数
- Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数
- 将不同的html页面组合成一个——通过框架标签frameset和frame实现
- 通过 Frame来实现页面内部导航
- 动态的把数据显示在table中,点击某一行的删除按钮实现该行的删除(通过ajax实现页面的无刷新加载)
- 在页面加载后在设置embed 的src 怎么实现?
- 设置X-Frame参数防止页面被Frame
- 在页面加载后在设置embed 的src 怎么实现?
- Servlet:通过初始参数实现权限访问某个文件、页面
- 通过修改location来实现兄弟frame间的页面跳转
- Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数
- 使用JavaScript实现访问本站点任何页面都加载Frame的一种实现方式
- 使用ADF-BC 实现查询功能之八:通过代码动态设置Criteria条件参数
- 通过偏移量实现页面底部内容加载