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