针对短信验证码接口被恶意攻击的防范总结
一. 短信接口被恶意攻击(短信轰炸)解读
短信验证码接口被恶意攻击一般主要用于短信轰炸。
短信轰炸一般基于 WEB 方式(基于客户端方式的原理与之类似),由两个模块组成,包括:
一个前端Web网页,提供输入被攻击者手机号码的表单;
一个后台攻击页面(如html),利用从各个网站上找到的动态短信URL和前端输入的被攻击者手机号码,发送HTTP请求,每次请求给用户发送一个动态短信。
被攻击者大量接收非自身请求的短信,造成无法正常使用移动运营商业务。
短信接口被刷通常指的就网站的动态短信发送接口被此类短信轰炸工具收集,作为其中一个发送途径。
具体工作原理如下:
恶意攻击者在前端页面中输入被攻击者的手机号;
短信轰炸工具的后台服务器,将该手机号与互联网收集的可不需要经过认证即可发送动态短信的 URL 进行组合,形成可发送动态短信的 URL 请求;
通过后台请求页面,伪造用户的请求发给不同的业务服务器;
业务服务器收到该请求后,发送动态短信到被攻击用户的手机上。
二. 短信验证码的攻击方式
人工频繁点击(这种方式几率非常小)
通过脚本攻击,页面自动化模拟点击和直接通过短信接口攻击
三. 容易被恶意攻击的场景
注册页面
忘记密码页面
手机短信动态验证码登录
四. 防止短信验证码恶意攻击的手段
增加图形化验证码
恶意攻击者采用自动化工具,调用动态短信获取接口进行动态短信发送,原因主要是攻击者可以自动对接口进行大量调用。
采用图片验证码可有效防止工具自动化调用,即当用户进行“获取动态短信” 操作前,弹出图片验证码,要求用户输入验证码后,服务器端再发送动态短信到用户手机上,该方法可有效解决短信轰炸问题。
安全的图形验证码必须满足如下防护要求
生成过程安全:图片验证码必须在服务器端进行产生与校验;
使用过程安全:单次有效,且以用户的验证请求为准;
验证码自身安全:不易被识别工具识别,能有效防止暴力破解。
单IP请求次数限制
使用了图片验证码后,能防止攻击者有效进行动态短信功能的自动化调用
但若攻击者忽略图片验证码验证错误的情况,大量执行请求会给服务器带来额外负担,影响业务使用。建议在服务器端限制单个IP在单位时间内的请求次数,一旦用户请求次数(包括失败请求次数)超出设定的阈值,则暂停对该IP一段时间的请求;若情节特别严重,可以将IP加入黑名单,禁止该IP的访问请求。该措施能限制一个IP地址的大量请求,避免攻击者通过同一个IP对大量用户进行攻击,增加了攻击难度,保障了业务的正常开展。
手机号码限定
根据业务特点,限定每个手机号码每天多发送量
限制发送时间间隔
此限定已经非常普遍,即当单个用户请求发送一次动态短信之后,服务器端限制只有在一定时长之后(此处一般为60秒),才能进行第二次动态短信请求。该功能可进一步保障用户体验,并避免包含手工攻击恶意发送垃圾验证短信。
流程限定
如果是类似忘记密码功能页面,我们可以将手机短信验证和用户密码设置分成两个步骤,用户在设置完成用户密码后,并需要获取上一步的成功回执后才进行手机验证码的发送。
集号吧企业短信群发:用于向特定的用户发送通知等场合,比如面试通知、会议通知、注册验证码、用户梯形、订单通知、手机验证等需要向某个用户发送短信的场合,企业短信采用高效的专用通道发送,发送速度更快更稳定。
如需短信群发可电话微信:13462636136 联系