社交app如何做好验证码防护不被刷

社交是时代的主题。大众的生活需求正在改变。各种垂直社交APP接连不断。陌生社交的成功使社交网络服务APP燃烧,面对庞大的网络市场,社交产品几乎成为所有网民日常生活中不可缺少的应用程序。网站或者APP注册页面,因为获取手机短信验证码的功能是暴露在外的,有可能会遇到短信接口被刷的情况,最严重的当属受到短信轰炸机的攻击,最严重的情况当属遭到自动化软件的攻击;那短信验证码防刷策略如何做呢?首先我们来了解一下短信接口攻击:短信接口攻击带来的影响1、用户在无任何操作情况下,莫名收到大量短信验证码,对用户造成严
摘要由CSDN通过智能技术生成

社交是时代的主题。大众的生活需求正在改变。各种垂直社交APP接连不断。陌生社交的成功使社交网络服务APP燃烧,面对庞大的网络市场,社交产品几乎成为所有网民日常生活中不可缺少的应用程序。

网站或者APP注册页面,因为获取手机短信验证码的功能是暴露在外的,有可能会遇到短信接口被刷的情况,最严重的当属受到短信轰炸机的攻击,最严重的情况当属遭到自动化软件的攻击;那短信验证码防刷策略如何做呢?首先我们来了解一下短信接口攻击:

短信接口攻击带来的影响
1、用户在无任何操作情况下,莫名收到大量短信验证码,对用户造成严重的骚扰;
2、使用短信验证码接口的用户,会被消耗大量的短信,同时,短信是以短信验证码接口客户的名义发出的,会对企业的品牌形象造成负面影响;
3、大量骚扰短信的发送,对短信通道及短信平台服务商的稳定安全运行造成极恶劣的影响。

如何有效防范短信接口攻击?
基于短信接口攻击的一些特点,我们有必要采用适当的短信验证码防刷策略,来降低甚至杜绝短信接口攻击软件对我们的影响,短信接口防御一般有以下一些措施:

1、短信平台系统拦截
平台会实时侦测对客户通过接口提交的每条短信,对恶意发送进行有效识别与拦截,能杜绝大多数的恶意发送。

2、对账户进行短信限流
短信接口支持多种方式的限流机制,用户可以根据自己的业务需要及特点,设置每天的最大发送量、每号码每天、每号码每分钟的发送量,将短信被刷的风险降低在可控范围内。

如账户短信达到当日最大发送量时,互亿无线短信平台会自动通过短信或微信通知您,您可以登录平台对发送量进行调整。

3、在用户注册页面增加人机验证
短信轰炸、短信攻击一般是采用软件进行自动攻击,在逻辑上,对用户先进性人机校验,校验通过之后才允许用户点击获取验证码按钮;人机校验的方式一般有以下几种:

a) 图形验证码:加上足够复杂的图形验证码可有效防止恶意工具的自动化调用,即当用户进行“短信验证码发送” 操作前, 弹出图形验证码,要求用户输入验证码后,服务器端再发送动态短信到用户手机上,该方法可有效解决被利用实施短 信轰炸攻击的问题。

b) 第三方人机校验:相较图形验证码,第三方人机校验服务的安全性更高,体验更好,不过一般都是要付费使用。

4、 在注册页面增加请求限制
a)对单个IP每天的请求次数做限制,如一天10次,超过即拒绝请求;
b)对同一号码的请求时间进行限制,单一用户请求验证码之后,需要间隔60-120秒才能再次请求;且同一号码每天最多只能请求5-10次;
c)将获取验证码功能放在表单(如填写用户名、密码等)和人机验证之后,即用户通过了表单校验和人机验证之后,才能点击获取验证码按钮。

短信验证码接口采用了以上一些防护措施之后,能防范绝大多数的短信接口攻击行为,大大节约您的短信成本;当然,这些策略需要在项目开发的时候就要考虑并配置。

代码示例

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%

 '接口类型:互亿无线触发短信接口,支持发送验证码短信、订单通知短信等。
 '账户注册:请通过该地址开通账户http://user.ihuyi.com/?b5kwA
 '注意事项:
 '(1)调试期间,请使用用系统默认的短信内容:您的验证码是:【变量】。请不要把验证码泄露给其他人。
 '(2)请使用 APIID 及 APIKEY来调用接口,可在会员中心获取;
 '(3)该代码仅供接入互亿无线短信接口参考使用,客户可根据实际需要自行编写;

Response.Charset = "gb2312&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP API 接口接收与返回 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。 该版本直接解压后就可以使用,其中 属于公共文件。不论是客户端还是服务器端都需要这些文件。 是客户端文件,如果你只需要使用客户端,那么只要有上面那些公共文件和这个文件就可以使用了,使用时,直接在你的程序中包含 phprpc_client.php 就可以,公共文件不需要单独包含。 这三个文件是服务器端需要的文件。 其中 dhparams 目录中包含的是加密传输时用来生成密钥的参数 dhparams.php 是用来读取 dhparams 目录中文件的类。 phprpc_server.php 是服务器端,如果你要使用 PHP 来发布 PHPRPC 服务,只需要包含这个文件就可以了。公共文件和 dhparams.php 都不需要单独包含。 PHP 4.3+、PHP 5、PHP 6 客户端要求开启 socket 扩展。 服务器端需要有 IIS、Apache、lighttpd 等可以运行 PHP 程序的 Web 服务器。 如果服务器端需要加密传输的能力,必须要保证 session 配置正确。 <?php include('php/phprpc_server.php'); //加载文件 function hello($name) { return'Hello ' . $name; } $server = new PHPRPC_Server(); //创建服务端 $server->add(array('hello', 'md5', 'sha1')); //数组形式一次注册多个函数 $server->add('trim'); //单一注册 $server->start(); //开启服务 ?> <?php include ("php/phprpc_client.php"); //加载文件 $client = new PHPRPC_Client('http://127.0.0.1/server.php'); //创建客户端 并连接服务端文件 echo$client->Hello("word"); //调用方法 返回 hello word ?> -------------------------------------------------- --------------------------------------------------- ------------------------------ 服务端其他说明: <?php include('php/phprpc_server.php'); //加载文件 function hello($name) { return'Hello ' . $name; } class Example1 { staticfunction foo() { return'foo'; } function bar() { return'bar'; } } $server = new PHPRPC_Server(); //创建服务端 $server->add('foo', 'Example1'); //静态方法直接调用 $server->add('bar', new Example1()); //非静态方法 需要实例化 //注册别名调用 $server->add('hello', NULL, 'hi'); //第三参数是函数的别名 客户端通过别名来调用函数 $server->add('foo', 'Example1', 'ex1_foo'); $server->add('bar', new Example1(), 'ex1_bar'); $server->setCharset('UTF-8'); //设置编码 $server->setDebugMode(true); //打印错误 $server->setEnableGZIP(true); //启动压缩输出虽然可以让传输的数据量减少,但是它会占用更多的内存和 CPU,因此它默认是关闭的。 $server->start(); //开启服务 ?> -------------------------------------------------- --------------------------------------------------- ---------------------------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值