短信验证码接口安全防护方案

短信验证码接口容易遭到恶意攻击(短信轰炸),造成大量短信下发,对用户造成困扰。短信轰炸形成的原因是因为非授权的动态短信获取,如用户注册时的手机验证短信,在用户获取验证码短信前系统并不能建立业务关联。因此,在未建立业务关联的情况下,需要进一步严格限制保证业务使用的安全性。我们可以综合采用:增加图片验证码、IP请求次数限制、单用户请求间隔时长限制3个措施,来保障验证码短信接口的安全性。

措施一:使用安全的图片验证码


采用图片验证码可有效防止采用自动化工具调用验证码短信接口,即当用户进行“获取短信验证码”操作前,弹出图片验证码,要求用户输入验证码后,服务器端再发送验证短信到用户手机上。安全的图片验证码必须满足:

生成过程安全:图片验证码必须在服务器端进行产生与校验;

使用过程安全:单次有效,且以用户的验证请求为准;

验证码自身安全:不易被识别工具识别,能有效防止暴力破解。

措施二:单IP对验证码短信接口的请求次数限定

使用了图片验证码后,能防止攻击者对验证码短信接口的自动化调用;但若攻击者忽略图片验证码验证错误的情况,大量执行请求会给服务器带来额外负担,影响业务使用。此时可以在服务器端限制单个IP在单位时间内的请求次数,一旦用户请求次数(包括失败请求次数)超出设定的值,则暂停对该IP一段时间的请求;若情节特别严重,可以将IP加入黑名单,禁止该IP的访问请求。该措施能限制一个IP地址的大量请求,避免攻击者通过同一个IP对大量用户进行攻击,增加了攻击难度,保障了业务的正常开展。

措施三:单用户请求间隔时长限制

为进一步优化业务正常使用,可以采用限制重复发送短信验证码的间隔时长,即当单个用户请求发送一次短信验证码之后,服务器端锁定如:30秒后,才能进行第二次请求。该功能可进一步保障用户体验,并避免包含手工攻击恶意发送大量验证码短信。

相关阅读:《短信轰炸原理》_漫道短信平台

你可能感兴趣的:(短信验证码接口安全防护方案)