云时代,通过对接短信API发送通知、提醒、验证、营销、推广短信是大多数企业不可或缺的需求,短信API极大的方便了企业和用户的连接。
短信验证码作为APP和网站最基础的需求,时常会被黑客恶意利用和进行短信轰炸。具体出现的状况,请看下面的截图(图片来自互联网)
如果短信验证码接口和页面不做任何限制,黑客很容易利用一些恶意的短信轰炸软件对接口进行攻击,不停的对同一个号码或者N个号码重复发送验证码短信。
短信验证码被攻击,不仅会对用户造成骚扰,引起投诉,更会浪费你的短信余额,降低品牌形象。
如何防范短信验证码被攻击?
一、图形验证码
大部分短信轰炸脚本基于网页爬虫,图形验证码可以简单粗暴的防御这类刷码行为。
在短信请求之前,让用户输入图形验证码,比对后发起API请求即可,如以下截图:
二、记录、比对IP和手机号码,做频率限制,过滤空IP头
用户请求验证码时,记录请求的IP和手机号码,并对发送频率做限制,例如每分钟/单个IP/单个手机号仅能请求一次。如果脚本无法获取用户的真实IP,请直接过滤这类请求。
三、在 SUBMAIL 设置验证码模板的单日请求上线
设置验证码模板的单日请求上限,设置一个合适的数值,这样每个手机号码单日超过这个上线的数量的验证码请求会被SUBMAIL直接过滤。要设置模单日请求上线,设置方法请看下图:
1:前往模板管理页面,找到验证码模板,并单击下图中红色箭头示意的按钮:
2:在弹出的边框中输入一个合适的数值,单击保存按钮即可。如下图中设置了每个手机号单日的请求上线为10次,超过10次的请求会被直接过滤。
四、设置 IP 白名单
前往 SUBMAIL -> 短信-> 创建/管理 APPID页面,设置IP白名单,保护您的APPID不被非法劫持后滥用,具体设置方法如下:
1:单击 APPID 中 IP 白名单栏目,单击右侧的编辑图标,进入编辑模板,如下图示意:
2:进入编辑模式后,输入您的请求IP,多个IP请使用半角逗号分隔,前后不需要空格。另外,如果您需要使用该APPID在SUBMAIL进行在线发送,您需要将121.41.28.2这台队列服务器IP包含进去,因为在线发送同样会对请求IP作鉴权,据图操作如下图:
五、SUBMAIL 主动防御机制
如上述3种方法还不能完全防御,您也不用担心,因为SUBMAIL为短信验证码接口植入了主动防御的机制,提供了更强大的保护措施。SUBMAIL 主动防御机制会在以下3种情况中被触发:
1:空号率触发安全机制:当用户请求发送的手机号码空号率达到一定的百分比之后,触发防御机制;
2:手机号码高频率请求触发安全机制:当单个手机号高频率的请求验证码时,到达一定比例,触发防御机制;
3:历史黑名单命中率触发安全机制:当命中历史黑名单到达一定比例时,触发防御机制;
SUBMAIL 主动防御机制被触发后,将会自动设置合适的安全级别,防御恶意请求。例如非常请求仅能获取3次验证码,如超过3次,将会被列入临时保护黑名单。
如您有其他疑问或建议,请在评论区留言,感谢您的阅读!