一、故障现象
用户反映使用IE11浏览器,通过百度搜索引擎搜索“XX银行”,通过搜索结果点击进入该银行门户,当点击其他某些连接的时候,偶尔会出现“502bad gateway”错误。
经测试验证“502bad gateway”此错误是中间某个SLB返回的错误。但是,SLB返回这个错误是因为后端应用不可用才会出现此错误,slb启用了cookie会话保持。
接下来的问题是,如何验证这个问题,如何定位这个问题,是否与是SLB造成的?还是其他设备的问题?
二、结构
(拓扑图暂不分享)大致结构如下
gslb+slb +ips +waf+ips......一系列安全设备
三、测试过程
1)、ie11 使用baidu搜索引擎,搜索“XX银行”点击搜索结果XX银行官网。
2)、XX银行官网首页可以打开。
3)、点击其他链接出现502badgateway。
【某银行首页使用ie11 通过百度搜索引擎进入偶尔出现502bad gateway排查】4)、整个测试过程中使用fiddler抓包。
四 、测试结果分析:
1)、第一次访问wwwXXbank.com.cn
从fidder抓包可以看到 response set-cookie正常
cookie值Response sent 77 bytes of Cookie data:
Set-Cookie: jilin=aefab2238351dac44e6db32b88862cd9;
Expires=Fri, 17-May-2019 02:15:51 GMT
文章图片
2)、红框标记的这个请求开始,客户端发起的请求多了一些cookie,此时的cookie中出现了baidu.com字段。
文章图片
3)、最后一个get正常携带cookie的请求分析
可以看到SLB没有对cookie做任何修改,所以SLB工作是正常的。
文章图片
4)、cookie值中出现baidu字段的后由于cookie值发生变化,出现“bad getway”
文章图片
所以,通过上述分析,cookie中的百度字段不是SLB插入的,应该是浏览器插入的。
5)出现502的原因
从安全角度分析,在会话交互过程中,cookie的值一般是不会发生变化的。如果发生变化,可能是http协议层针对cookie的攻击,因此,结合用户网络结构,最终把稳定定位到WAF上。
6)查看waf日志
通过在waf上查看拦截日志,确认waf拦截了cookie中带有www.baidu.com字段的请求。
原因是“检测到匹配远程文件包含”
7)验证测试
修改waf的对应策略,再次测试,“502 badgateway ”故障消失
结论:
出现这个问题原因应该是一些搜索引起把自己的域名作为cookie值插入到了用户的浏览器中。这应该是一种商业目的。问题最终圆满解决。