java面试(1)如何防止恶意攻击短信验证码接口

1 自研技术

1、手机号码限制:限制单个手机号码每天的最大发送次数。超过次数不能发送短信,可以考虑将手机号码加入黑名单,禁止1天。
2、短信发送时间间隔限制:限制同一个手机号码重复发送的时间间隔。通常设置为60-120秒,前端做倒计时限制,时间未到不能点击发送短信按钮,后台也做时间间隔限制,时间未到不能发送短信。
3、IP地址限制:限制每个IP地址每天的最大发送次数。防止通过同一个IP地址不同手机号码进行恶意攻击。超过次数不能发送短信,可以考虑将IP地址加入黑名单,禁止1天。可以考虑限制同一个IP地址每分钟的接口请求频率。
4、发送流程限制:将流程分成两个步骤。如:注册用户,将发送短信验证码和设置用户名密码分成两个步骤,第一步一个页面用来设置用户名和密码,用户设置用户名和密码发送到后台,获取到后台返回的第一步成功回执之后,进入第二步另一个页面发送手机短信验证码。
忘记密码,找回密码,第一步输入用户名,第二步发送短信验证码。
5、增加图片验证码:发送短信验证码时,要求输入图片验证码,每个图片验证码仅能使用1次,使用1次后,不管输入的图片验证码是否正确自动失效。如果输入错误更新图片验证码。图片验证码失效可以防止图片验证码识别软件尝试多次识别,可以考虑复杂的图片验证码或点触验证、滑动验证。
6、对发送者进行唯一性识别:防止修改参数伪造多个IP地址和手机号码进行恶意攻击,用Token作为唯一性识别标识,后台将Token注入到前端,前端可以获取到Token,请求发送短信验证码接口时带上Token,后台接收到Token进行验证,验证未通过不能发送短信。
7、发送短信验证码,短信验证码有效期内,发送相同的短信验证码。比如设置30分钟有效,短信发送时间间隔限制为60秒,第一次发送之后,60秒倒计时结束,点击按钮第二次发送,第二次发送的验证码和第一次相同。
8、短信验证码可以考虑数字和字母组合。
9、短信验证码输入错误次数限制,比如设置短信验证码输入错误3次后,这个短信验证码就不能使用了。防止猜测短信验证码恶意注册。
10、上行短信验证码:对于可疑用户要求其主动发短信。

2 自研验证码被破解怎么办?

  1  腾讯防水墙
  2  网易滑动拼图验证码
  3  顶象滑动拼图验证码
  4  极验滑动拼图验证码

3 图形验证码都被破解怎么办?

选用新昕科技研发的企业短信防火墙,理由 :
1  应用AI立体防御技术,训练出“防短信轰炸”智能模型,彻底解决“安全”与“用户体验”的矛盾,互联网产品专注用户体验,无需为安全让步。
2 丰富可视化图表,防御拦截数据尽收眼底,实时查看当日数据详情与近期风险趋势。
3 SAAS极速接入,本地部署运行,毫秒级响应。交易风控引擎浓缩10M安装包,极速采集基础数据,匹配多维度风险特征。避免“云模式”网络延时问题。

在这里插入图片描述

你可能感兴趣的:(java面试(1)如何防止恶意攻击短信验证码接口)