Springboot短信防刷接口实现及Dubbo、Zookeeper整合

本文介绍了针对短信接口的防刷策略,包括手机号和IP地址发送数量限制、号码退订功能、手机号合法性验证、验证码方案,并详细阐述了如何在集群环境中使用Dubbo和Zookeeper进行服务整合。

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

 

 

需求分析

一、站在被攻击者的角度而言,首先要保证的是:其手机号短时间内不收到多条短信(假定为每分钟最多收到1条),而若攻击者以分钟为单位调用接口,对被攻击者而言也难以接受,故同样要保证的是:被攻击者在同一天内不收到多条短信(假定为5条)。

二、站在服务提供者的角度而言,平台不希望发出大量无用短信,从而增加系统压力与短信费用,但不能以简单的限制每日发送短信总数量来做处理,因为当攻击者恶意调用多次接口导致系统不再提供服务后,将影响用户的正常注册。同时,在业务增长期,注册人数难以用固定的数值来衡量,对于平台而言,识别出可疑的异常调用者是最好的解决方案。

三、站在普通用户的角度而言,在能够保证正常注册以外,注册的体验也较为关键,比如:未收到短信时点击重新发送的时间不宜过长、验证码不宜太过复杂等。

四、系统压力与处理速度上,若这一套防刷机制过于复杂,在调用时要进行多种检验、判断,会对系统造成压力,同时用户收到短信的速度也会减慢。

在各类场景如:

1.同一ip对同一手机号的大量发送

2.同一ip下对不同手机号的大量发送

3.更换ip对同一手机号大量发送

4.场景1、2、3下两次请求之间间隔一段时间进行调用

5.不同ip短时间内对不同手机号的大量发送

 

优先级最高需要保证的是:

正常注册功能不受影响

单一用户不遭到“轰炸”式骚扰

其次要做到的是:

尽量少发出无用短信

正常用户注册体验较好

 

拟用以下策略解决以下情况:

1.优化流程:如先让用户输入要注册的账号密码后再进入短信验证环节,先验证手机号是否

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值