2 月 19 日晚,华莱士官方微博发布紧急声明,2 月 18 日,华莱士自助点餐小程序的本属于储值用户专享的免费套餐券被非法领取,且非法领取的套餐券将被作废处理,详细如图:
也有网友晒图,确实被领取且兑换了套餐:
从专业角度来看这个事儿,活动规则是这样的:
用户充值对应的金额可以获得免费套餐券:
A 款套餐旁标注“充99送”
B 款套餐旁标注“充199送”
C 款套餐旁标注“充299送”
用户领券的前提是用户第一次在华莱士官方点餐小程序充值对应金额可以免费领取对应的套餐。
然而,程序员在开发该活动代码时,未对用户是否已经充值,且充值了多少金额做判断,导致,任意用户都可以通过领取套餐券的页面领取任意套餐券,画个图来解释这个事儿:
这是一个典型的业务逻辑漏洞,在鉴定权限的时候没有做好细粒度的权限控制,导致未达活动要求的用户也可以通过最后的领券环节领取套餐券。
对于公司而言,在发布活动时需要做好以下几点:
1、活动发布前,做好黑盒测试,防止类似的漏洞出现且上线发布
2、活动上线后,要对相关指标做监控,防止活动被恶意利用时,不能及时发现,及时止损
华莱士这次的活动,由于利用简单,只需点一个链接就可以领取套餐券,且券的价值不小,导致大量用户进入小程序,导致小程序崩溃,还影响正常用户的使用,对业务连续性还造成了影响。
这类问题,比较难发现,对公司造成的损失比较大,还需重点对待,这也算年后的第一个大的安全事件,值得我们注意。