大厂线上案例复盘--代码漏洞

万无一失却实际上是形同虚设的代码逻辑漏洞

这是一则发生在某大厂的真实案例,出于脱敏名字这且不说。

 

这个系统因为第一次上线,流量非常的大。

所以需要灰度上线,所谓灰度方案很短,比如按照地理位置,先选择某个访问量小的地区比如西部青海。

然后逐步放量,几天以后增加几个省再看看,然后如果没问题扩大到全国。

灰度是没有问题的,也是必要的。

 

APP--->B系统--->新系统

这个系统提供了一个接口给B调用

由于B系统是全国开放,所以B的流量很大,B上面没有做地区限制,他的流量会都打到新系统上。

所以一开始不是青海的用户就不走这个系统的逻辑。

由于这个系统有自己的后台,运营人员在后台会设置不同地区的业务逻辑。

但是开发你也不知道运营是什么时候设置其他地区,这个灰度实际上是由运营来控制的。

所以开发人员就先从数据库进行查询已经设置的地区,把设计的地区直接缓存在JVM内存李,不在这个地区的都直接跳过,这样就不会走后面的业务逻辑也就是查库等等。

看起来一切没有问题,但是实际上出现了一个缺陷,就是上线之初运营人员自己测试的时候先设置了“全国”,然后又删除了这个配置,但是数据库是软删除,地区是存在一个关联表里。

开发人员没有对查询出来设置的地区进一步的限制,该地区必须是有效的,而不是已经删除的也就是地区信息要去配置表进行关联。

所以系统一上线,这个看似万无一失却形同虚设的优化点一点作用也没有。

 

问题本身不复杂,无非是代码逻辑不严谨,只测试了业务逻辑,没有测试这个灰度逻辑。

开发+测试 都有需要改进之处,实际上现实中千千万万的bug都是诸如此类的。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值