短信发送接口被恶意调用--记一次救火经历

本文讲述了Z项目遭遇恶意调用短信接口的问题,分析了问题原因在于接口暴露且无验证措施。紧急停用接口后,提出了限制IP和手机号请求次数、增加黑名单、停用主动发送验证码、图形验证码等解决方案,并选择了图形验证码作为最佳补救措施。事后反思,强调了接口安全的重要性,对受影响用户表达了歉意。
摘要由CSDN通过智能技术生成

-- “隐患险于明火,防范胜于救灾,责任重于泰山”

上周三早上接到Z项目组小伙伴的求助:短信发送接口被恶意调用了,注册验证码短信在不停被发送,短信平台已经封了我们的发送通道,调用方还在孜孜不倦地调用接口,怎么搞?

Z项目是三年前进行的第一版上线,三年来一直由我们的小伙伴做更新与维护。这个问题出现后,赶紧回顾项目的相关内容。

一、回顾项目

Z项目在三年前初始上线,当时主要用户为公司内部人员,支持移动端使用。上线前时间紧迫,最简单的实现流程就是“填写手机号”->“发送验证码”->“填写验证码”->“完成注册”。同时,在这个流程中增加了一些限制:

  1. 手机号A在1分钟内只允许发送一次验证码a;
  2. 验证码a未使用的情况下,保持2分钟有效;
  3. 手机号A在1分钟后允许请求发送第二次验证码b,同时验证码a失效;
  4. 短信平台控制在一天内只能向手机号A发送X次短信(X由短信平台统一控制)。

这几条限制能保证手机号A不会产生太多次的短信请求,看似能控制住短信的成本,当时上线前也认为这样对于内部人员使用是可控的,没再进行更多分析。后续三年内系统的使用人员范围有了很大的扩展,目前Z项目的使用对全部互联网用户公开。用户范围的扩大带来更多的是处理业务、代码、数据的同步增长,唯独没有对“短信验证码发送”这样一个看似“小小的”功能是否依然合理进行过思考。

二、发现问题

问题表象很明显:恶意攻击者发现了我们的接口,并进行了利用。

那我们的问题也就一目了然&#x

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值