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

本文通过一个大厂的实际案例,揭示了灰度上线过程中因代码逻辑不严谨导致的问题。系统上线初期,运营在后台设置了全国范围,随后删除,但开发未对查询的地区有效性进行校验,使得看似完善的优化措施失效,造成线上故障。此案例指出开发和测试环节存在的不足,提醒业界重视逻辑细节的检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

 

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

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

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

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

 

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

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

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

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

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

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

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值