为了防止被短信验证码恶意轰炸,可以从两方面考虑:一是增加攻击者的成本,再就是降低攻击者的收益。
可以通过以下几种方式实现:
1.在调用发送短信的接口之前,需要先校验图形验证码,只有图形验证码校验通过了,才允许请求短信接口,这种方式可以拦截大量的脚本自动刷量。
2.基于Redis对单个手机号进行限制,比如限制1分钟内只能发送1条,1小时以内最多发送5条或者24小时以内最多发送10条。
3.为了防止有人换手机号进行轰炸,可以对IP进行限制,同一个IP,限制在24小时内最多发送20条短信。一旦该IP的短信发送量超过这个阈值,直接对其进行封禁处理。
4.如果是国内的业务,则可以一刀切,直接把所有境外的号码屏蔽掉。