防止验证码的恶意发送

Posted heshana

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防止验证码的恶意发送相关的知识,希望对你有一定的参考价值。

短信接口验证码是网站,App,微信端校验用户手机号码真实性的首要途径,在为用户提供便利的同时,手机短信验证功能也会被部分用户进行恶意使用。恶意频繁发送短信验证码,不仅会增加公司的运营成本,增加系统负载,也会给公司的形象造成极坏的影响(一般短信都会带公司的签名),所以必须要对这种行为进行防范,那么如何才能防止恶意频繁发送短信验证码?

  一、易遭恶意使用的场景
  网络在线投票站(需要填写手机号码进行校验)

  用户用手机号注册页面(包含手机短信验证功能)

手机短信动态密码登录

通过手机号找回密码

  二、恶意频繁发送短信验证码的途径

  主要有两种途径,一种是人工频繁点击;一种是通过软件连续点击,就危害性来说,软件连续点击的危害要大的多。

  三、防止恶意频繁发送短信验证码的手段

  1,短信发送间隔设置——设置同一号码重复发送的时间间隔,一般设置为60-120秒
  2,IP限定——根据自己的业务特点,设置每个IP每天的最大发送量
  3,手机号码限定——根据业务特点,设置每个手机号码每天的最大发送量

上述三种方法不能有效防范通过软件来连续点击,因为软件可以模拟大批量ip,手机号来调用接口发送

4,流程限定——将手机短信验证和用户名密码设置分成两个步骤,用户在设置成功用户名密码后,下一步才进行手机短信验证,并且需要在获取第一步成功的回执之后才可进行校验。

5,绑定图型校验码——将图形校验码和手机验证码进行绑定,这样能比较有效的防止软件恶意注册。该方式主要用于web防范,对于app和微信一般是不用图形校验码的。同时图形校验码的校验必须放在服务端,不能简单的在页面里校验,防止恶意软件绕过图形校验码。

6,随机码校验,针对app和微信不适用图形校验码的问题,我们可以在用户请求发送前页面时候在页面中嵌入随机码,调用发送手机验证码时候,要把这个随机码发送到服务端做校验

7,限制终端类型。针对app和微信,我们可以限制必须是手机来请求才处理。

8, 除了技术手段,从商务角度考虑,我们需要和短信网关方约定每日发送短信上限,超过上限就不再发送,尽量减少经济损失。尽量找比较靠谱的短信网关,他们也会有监控,比如某个时段,某家公司的短信发送量异常,会及时通知接入方。如果短信网关不靠谱,大量发送短信对他们有经济利益,难免他们自己来捣鬼频繁发恶意发送短信。
————————————————
版权声明:本文为CSDN博主「joshua1830」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/joshua1830/article/details/51780768

以上是关于防止验证码的恶意发送的主要内容,如果未能解决你的问题,请参考以下文章

Java实现验证码的产生和验证

Java实现验证码的产生和验证

asp.net验证码[生成与刷新]防止恶意注册图文并茂包括

Android开发——本地验证码的简易实现(防止暴力登录)

验证码的原理作用及实现

PHP生成各种验证码和Ajax验证