手机验证码设计和防刷制度
2016-01-10 03:20
411 查看
随着移动互联网的发展,现在基本每个网站都有手机验证码了,手机验证码设计不麻烦,主要就是容易被其他人刷发短信接口,
所以后面也会说说如何防止被刷接口
一)数据库设计
二)发送验证码伪接口
三)防刷措施
每分钟只能发送一次验证码
加入图形验证码
表单加入隐藏验证域
分析access.log 对恶意的IP进行黑名单操作(比较暴力了,我国国情一个IP可能好多人用了)
原文地址:手机验证码设计和防刷制度
来看看这20个顶尖的开源项目!
RBAC权限管理系统
一个印度人写的文章,看完惊出一身冷汗,肯定包括你!
【解决方案】订阅号不允许跨号支付
所以后面也会说说如何防止被刷接口
一)数据库设计
CREATE TABLE `sms_captcha` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号码', `captcha` varchar(10) NOT NULL DEFAULT '' COMMENT '验证码', `expires_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '验证码有效期', `status` tinyint(4) NOT NULL, `created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), KEY `mobile` (`mobile`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二)发送验证码伪接口
对于这种可能被很多地方调用的业务,一定要封装成SmsService,一般我会定义以下几个方法 geneCaptcha($mobile,$content) //产生验证码(有效期10分钟)并发送验证码 getLastCaptcha($mobile) //获取验证码 checkCaptcha($mobile,$captcha) //check 验证码
三)防刷措施
每分钟只能发送一次验证码
加入图形验证码
表单加入隐藏验证域
分析access.log 对恶意的IP进行黑名单操作(比较暴力了,我国国情一个IP可能好多人用了)
每分钟只能发送一次验证码?
每分钟的限制 直接用数据库验证码的创建时间 和 当前时间对比就好了
每分钟的限制 直接用数据库验证码的创建时间 和 当前时间对比就好了
加入图形验证码?
这个自己google或者百度下吧
这个自己google或者百度下吧
表单加入隐藏验证域?
一般我会加两个隐藏域,一个时间戳,一个加密字符串(加密算法要和时间戳相关,例如 m5d( salt + 时间戳 ) )
一般我会加两个隐藏域,一个时间戳,一个加密字符串(加密算法要和时间戳相关,例如 m5d( salt + 时间戳 ) )
原文地址:手机验证码设计和防刷制度
智能推荐
新购买的vps应该做的几件事情来看看这20个顶尖的开源项目!
RBAC权限管理系统
一个印度人写的文章,看完惊出一身冷汗,肯定包括你!
【解决方案】订阅号不允许跨号支付
相关文章推荐
- python3数组使用说明
- Deadlock: the problem and a solution
- 手机验证码设计和防刷制度
- 解读大型网站的演变过程
- NO.90 Struts2.3.15.1升级总结
- BugPhobia开发终结篇章:Beta阶段第XI次Scrum Meeting
- 解读大型网站的演变过程
- 悦苗园公益活动
- iOS 关于颜色的库 - Wonderful
- 【Beta阶段】测试报告
- 【Beta阶段】M2事后分析
- VirtualBox Unable to load R3 module 问题解决方案
- 悦苗园公益活动
- 关于MAC下Android SDK manager 更新解决办法(无需翻墙)
- 程序猿打招自己的电子图书馆
- Java学习之自定义异常
- 最小圆覆盖模板
- SNMP PDU解析
- iframe去边框,无边框
- php 合并数组的方法 非array_merge