0x01短信接口被恶意攻击
接口来源
1.WEB注册接口
2.APP注册接口
发送大量验证码
IP数量不断变化,大量手机号码(不在意短信是否空号)
目前解决方案
增加了安全验证码
输入验证码在发送短信
0x02安全方案
1.短信发送时间间隔限制:
限制同一个手机号码重复发送的时间间隔。通常设置为60-120秒,前端做倒计时限制,时间未到不能点击发送短信按钮,后台也做时间间隔限制,时间未到不能发送短信。
2.修改注册步骤
注册用户,将发送短信验证码和设置用户名密码分成两个步骤,第一步一个页面用来设置用户名和密码,用户设置用户名和密码发送到后台,获取到后台返回的第一步成功回执之后,进入第二步另一个页面发送手机短信验证码。(提交的速度和IP提交限制)
3.加入Token
对发送者进行唯一性识别:防止修改参数伪造多个IP地址和手机号码进行恶意攻击,用Token作为唯一性识别标识,后台将Token注入到前端,前端可以获取到Token,请求发送短信验证码接口时带上Token,后台接收到Token进行验证,验证未通过不能发送短信。(推荐使用第这种方案)
对用户进行人机验证,例如,前段js的加载,用户页面停留的时间,判断用户是否代理IP。
4.增加图片验证码:
发送短信验证码时,要求输入图片验证码,每个图片验证码仅能使用1次,使用1次后,不管输入的图片验证码是否正确自动失效。如果输入错误更新图片验证码。图片验证码失效可以防止图片验证码识别软件尝试多次识别。
可以考虑复杂的图片验证码或点触验证、滑动验证。