防止短信接口验证码被恶意攻击办法!
短信接口验证码短信接口短信验证码验证码接口
2018-09-11

在写短信接口验证码的时候,通常使用post请求,尽量不将短信接口参数暴露出来,但是对于黑客来说,简单的post是阻止不了他们黑你的步伐的,如果短信接口服务器没有时间防护、签名校验等措施,对于黑客来说,攻破你的短信接口轻而易举,那么如何防止短信接口验证码被恶意攻击呢?

 

1、手机号码限制:限制单个手机号码每天的最大发送次数。超过次数不能发送短信,可以考虑将手机号码加入黑名单,禁止1天。

 

2、短信发送时间间隔限制:限制同一个手机号码重复发送的时间间隔。通常设置为60-120秒,前端做倒计时限制,时间未到不能点击发送短信按钮,后台也做时间间隔限制,时间未到不能发送短信。

 

3、IP地址限制:限制每个IP地址每天的最大发送次数。防止通过同一个IP地址不同手机号码进行恶意攻击。超过次数不能发送短信,可以考虑将IP地址加入黑名单,禁止1天。可以考虑限制同一个IP地址每分钟的接口请求频率。

 

4、发送流程限制:将流程分成两个步骤。如:注册用户,将发送短信验证码和设置用户名密码分成两个步骤,第一步一个页面用来设置用户名和密码,用户设置用户名和密码发送到后台,获取到后台返回的第一步成功回执之后,进入第二步另一个页面发送手机短信验证码。忘记密码,找回密码,第一步输入用户名,第二步发送短信验证码。

 

5、增加图片验证码:发送短信验证码时,要求输入图片验证码,每个图片验证码仅能使用1次,使用1次后,不管输入的图片验证码是否正确自动失效。如果输入错误更新图片验证码。图片验证码失效可以防止图片验证码识别软件尝试多次识别,可以考虑复杂的图片验证码或点触验证、滑动验证。

 

6、对发送者进行唯一性识别:防止修改参数伪造多个IP地址和手机号码进行恶意攻击,用Token作为唯一性识别标识,后台将Token注入到前端,前端可以获取到Token,请求发送短信验证码接口时带上Token,后台接收到Token进行验证,验证未通过不能发送短信。

 

7、发送短信验证码,短信验证码有效期内,发送相同的短信验证码。比如设置30分钟有效,短信发送时间间隔限制为60秒,第一次发送之后,60秒倒计时结束,点击按钮第二次发送,第二次发送的验证码和第一次相同。

 

8、短信验证码可以考虑数字和字母组合。

 

9、短信验证码输入错误次数限制,比如设置短信验证码输入错误3次后,这个短信验证码就不能使用了。防止猜测短信验证码恶意注册。

 

10、上行短信验证码:对于可疑用户要求其主动发短信。

 

以上就是防止短信接口验证码被恶意攻击的办法。有需要短信验证码接口服务的,可以登陆Mob官网了解更多。