赞
踩
一般而言,几个网站以共享的方式宿驻在同一台web服务器之上,或者几个web应用程序共享同一个IP地址,这都是业界一些非常通用的做法。当然,这也就是host头(host header或称主机头)的存在原因。host头指定了应该由哪个网站或是web应用程序来处理一个传入的HTTP请求。web服务器使用该头部的值来将请求分派到指定的网站或web应用程序之上。宿驻在同一IP地址上的每个web应用程序通常被称为虚拟主机。
这种情况实际上风险较低,难以构成Host头攻击。但是由于大多漏洞扫描器会将这种情况检测为Host头攻击,为了通过上级检查或各种审核,大多数甲方单位会要求修复漏洞,彻底解决问题(这就是我们公司要修改的原因,其实我们在代码中已经规避request.getServerName()其他的情况不会有安全问题,但是安全扫描工具仍然会扫描到,所以我们必须做出处理)
方法 | 解决办法 | 好处 | 前端 | 后端 | 验证 |
---|---|---|---|---|---|
apache | 修改\conf\httpd.conf文件 在复制一份放在原来的下面并在里面增加“ServerName ip:port ”增加 “UseCanonicalName On” 同时改动原来的那份把转发的改了返回改成403错误 | 改动较小 | 解决 | 解决 | 已验证 |
tomcat | /tomcat/conf/server.xml,找到<Host name=“localhost” appBase="webapps"这一行,将localhost改成ServerName保存,并重启 | 改动较小,前后端分离前端未能解决 | 未解决 | 解决 | 已验证 |
代码 | 增加过滤器,增加白名单文件,对所有的请求都进行过滤放行ipv4 ipv6 localhost 127.0.0.1 等 | 资源消耗大,前后端分离前端未能解决 | 未解决 | 解决 | 已验证 |
nginx | 修改ngnix.conf 在原来里面增加server_name 在前面增加错误跳转“server { listen 8888 default_server; server_name _; access_log off; return 403; }” | 改动较小 | 解决 | 解决 | 未验证 |
使用postman 进行访问,增加参数 host 写一个非法的host,返回不是200ok即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。