最近我司部分客户网站和app会出现
短信验证码被恶意调用,作为动力思维的技术人员,现在总结一些方法,帮助客户以及我司提高验证码短信接口的安全机制。
客户平台方面:
主要有以下几种手段:
1.限制同设备,同IP,同手机号的发送次数。
2.在获取短信验证码操作之前采用点触验证或滑动验证,验证通过后再进行验证码接口请求。
3.检测IP所在地是否与手机号归属地匹配(获取请求的真实ip与手机号归属地,这个限制性太多,建议个别情况使用)。
4.先做预发送请求,后端返回校验串,前端js将所有信息再次编码送回,js记得混淆。前后验证通过后再请求验证码接口。
5.对于已被拉黑的手机号/ip/设备,同样提示发送成功,而后端不发出短信,可以做出标记,可以干扰攻击者。
6.对手机号码进行特定规则加密后生成签名,提交到后台。后台通过相同规则生成签名,比较两个签名相同后再进行短信发送。
7.增加短信获取倒计时,相同号码规定时间内获取次数限制。
8.更换http协议为https协议,增加安全系数,增加攻击的难度。
我司方面:
主要有以下几种手段:
1.对客户账户与IP绑定,报备过的IP地址提交的短信可以正常发送。其他ip无法正常提交。
2.对客户提交的手机号进行分钟限,小时限,日限。超过限制则无法正常发送。
3.对客户发送短信时段进行监控,如与客户要求不否则无法正常发送。
4.增加黑名单策略,可对黑名单号码进行限制,属于黑名单号码无法正常发送。
5.增加监控功能,对存在异常的用户进行短信、语音通知。及时止损。
以上便是我自己总结的一些防刷方法,希望能对大家有些帮助。有更好的方案可以联系我们,共同进步。