短信验证码防刷策略

转载 2018年04月17日 09:50:20

短信验证码作为重要的身份验证工具,因其操作简便、安全性高、时效性强等优点已被开发人员广泛使用。但因其获取便利、限制较少容易被不法分子利用进行短信轰炸,恶意刷掉大量短信费用,给公司或个人造成大量的金钱损失,造成这种情况原因主要是在产品实际设计过程中,有些产品人员因为对技术实现不太了解,防范意识薄弱,简单或直接忽略对短信验证码进行限制,这才造成短信接口恶意被不法分子利用。

在介绍防刷策略前我们需要了解下常见的刷短信验证的行为。

1.以攻击手机号为目的刷短信验证码

这类攻击目标主要是攻击者借助web网站短信接口对目标手机号进行短信轰炸。攻击者会先收集互联网上多个未经防护的网站短信接口,设定要攻击的手机号码通过模拟用户,循环向后台发送短信验证码请求,达到攻击手机号的目的。对于这类攻击通过一般验证码设置即可达到防护目的。

2.以恶意刷取目标网站短信费用为目的的攻击

这类攻击主要目的是刷掉目标网站的短信费用,在第一种基础上攻击者会不停变换各种接口参数如手机号、IP(采用高匿代理)等去请求后台发送短信验证码,进行恶意刷短信,后台根本无力辨别用户真伪。攻击目标明确,难以防护,因其变换不同IP、手机号,一些简单措施基本失效,产品设计人员在前期产品设计时尤其需要注意这类攻击。

下面是针对攻击者做出的一些应对措施。

1.前端增加图文验证码

在获取短信验证码前增加图文验证码是较为常用的方法。攻击者一般是采用自动化攻击,增加图文验证码后,攻击者要对验证进行识别验证成功后才能进行模拟用户发送请求,这一步需要在页面中进行,无法采用自动化攻击。第一种攻击基本上失效,同时会增加第二种的攻击成本(有可能采用人工打码方式进行验证)选择验证码时既要考虑用户操作过程的流畅度,又应该考虑到安全度。

下图是几种常见的图文验证码,可以结合自身平台特点进行选择,

产品防护:5种常见的短信验证码防刷策略

2.限制单个手机号每日接收短信次数和时间间隔

对单个手机号进行日接收次数的限制,可以防止单个手机号无限制刷短信,同时设置时间间隔可以有效,防止人工刷票。短信接收次数可以根据平台特点进行限制,一般日接受验证码次数为10次左右;同一号码发送时间间隔通常为60秒,前后台应保持一致,避免出现只前端做倒计时限制,后台未做限制这种低级错误。

3.对IP进行限制

对单IP最大发送量进行限制,可以有效防止单一IP下多手机号被刷的问题。最大发送量限制是防止恶意攻击者同IP下不同手机号进行刷短信验证码行为。根据平台实际情况设计一个短信最大发送量的阀值,超过阀值将不予返回短信。

4.对注册流程进行限定

一般来讲常被攻击的地方是注册页面,一般是从两方面进行触发流程的限定。

  • 第一种,可以从前端写入指令,只允许在官网主页跳转入注册页面;
  • 第二种方法是对注册流程进行分步,先进行账户密码设置,设置成功后才可以再进行下一步的短信验证。

因为增加前置条件,增加攻击难度两种方法都是能有效防止自动化攻击,需要注意的是两种方法对用户体验或多或少的影响,产品经理需要结合自身平台特点选择。

5.对发送者进行唯一性识别

为了防止第二种恶意攻击者通过修改传向服务器各项参数,造成多IP多手机号刷短信验证码的行为,所以后台应对前台传过来的参数进行验证。方法一般是用token作为唯一性识别验证,后台写一个算法将token注入到前端,然后前端可以通过相应的规则获取到token,在发送短信验证请求接口数据时带上token,在后端对token进行验证,验证通过才能正常将短信发送。

在产品设计过程中一般采用前三种方式组合使用,基本可以防止大部分恶意刷短信验证码的行为。产品人员要在防护与用户体验之间寻找平衡,结合自身产品特点选择,要未雨绸缪不应到短信被刷才进行防护。

Android自动化刷量、作弊与防作弊

-
  • 1970年01月01日 08:00

产品防护:5种常见的短信验证码防刷策略

短信验证码作为重要的身份验证工具,因其操作简便、安全性高、时效性强等优点已被开发人员广泛使用。但因其获取便利、限制较少容易被不法分子利用进行短信轰炸,恶意刷掉大量短信费用,给公司或个人造成大量的金钱损...
  • zhuiqiuk
  • zhuiqiuk
  • 2017-02-08 18:16:41
  • 3483

如何设计短信验证码防刷机制

做产品经理 2017-08-23 23:31 最近遇到一个关于防止短信验证码被刷的产品设计问题,后来在面试一个前来应聘JAVA开发的程序员的时候,他也提到了他以前公司的系统也遭遇过这个被...
  • u011277123
  • u011277123
  • 2017-08-24 08:59:44
  • 1677

[转]短信验证码如何防止不恶意点击被刷!

短信验证码如何防止不恶意点击被刷!短信接口验证码是网站、App校验用户手机号码真实性的首要途径,在为网站及APP提供便利的同时,手机短信验证功能也会被部分用户进行恶意使用。注:发送验证码1分钟只能点击...
  • u011250882
  • u011250882
  • 2015-07-06 19:10:43
  • 3993

几条短信验证码防刷机制

1、时间限制:60秒后才能再次发送 这种方法不是非常有用,技术好点的人可以绕过这个限制发送短信。 2、手机号限制:同一个手机号,24小时之内不能够超过5条 这只能避免手动...
  • liucsen
  • liucsen
  • 2017-08-26 17:01:46
  • 1004

短信防刷办法

短信接口在业务中是必然会有的,那么怎么保证接口被刷呢? 我简单总结一下我的想法 首先可以考虑在页面上加上 验证码。可以减少人为的刷票 大量的被刷还应该是直接对接口的调用,这里面应该怎样防止被刷呢...
  • Merciwen
  • Merciwen
  • 2017-06-28 00:42:00
  • 533

防止频繁刷验证码接口-luosimao

在html中很容易可以拿到接口进行恶意访问,然后看到www.luosimao.com提供了免费的人机验证服务。https://luosimao.com/docs/api/56 文档。1.注册一个lu...
  • ATYZ123
  • ATYZ123
  • 2017-07-12 10:52:49
  • 842

如何防止恶意点击手机短信验证码

一、 易遭恶意使用的场景或网站 1、 网络在线投票站(需要填写手机号码进行校验) 2、 用户在线注册页面(包含手机短信验证功能) 3、 手机短信动态密码登录 ...
  • yeisman
  • yeisman
  • 2016-03-23 17:10:23
  • 1662

基于Redis的防刷票、防刷短信、及所有防刷系统的设计

一、背景介绍在设计大型Web网站时,特别是涉及到金钱交易的,如电商系统,免费抽奖,1分钱秒杀等网站,一些不法黑客会想办法攻破来获取“利益”。他们常用的手段,大概分为以下几种: 1、初级版:通过抓包工...
  • JaCman
  • JaCman
  • 2016-06-26 16:12:11
  • 3635
收藏助手
不良信息举报
您举报文章:短信验证码防刷策略
举报原因:
原因补充:

(最多只允许输入30个字)