短信验证码--小功能如何做到完美
来源:互联网 发布:truelicense源码 编辑:程序博客网 时间:2024/05/16 19:08
实践:
一.短信验证码一个简单的功能如何做到好用并不被攻击很难那我们来看看各大网站如何做的呐?
1,猎聘网:
请求url:http://www.liepin.com/user/sendverifymessage?__mn__=newtel
post方式:newtel=15555317458
响应消息体:
成功:
{
"flag":1,
"tel":"15555317458",
"code":"SYS_00200"
}
失败:
总结:前台做了发送时间60秒延时处理,但是只要去掉disabled="disabled"可以连续发送绑定click事件并没有去掉,并且显示倒计时杂乱(多次请求倒计时交替显示),后台没做很容易通过postman类似的工具重复发送,还好做了每天请求的最高次数(应该是IP地址的限制)。
2.京东网:
请求url:https://reg.jd.com/notifyuser/mobileCode?state=&mobile=15555317458&r=0.4345317620318383
响应消息体:
成功:
{"rs":1}
失败:
{"remain":"该手机还可获取1次验证码,请尽快完成验证"}
{"info":"120秒内仅能获取一次短信验证码,请稍后重试"}:我擦倒计时后台还做了校验
总结:前台做了120秒延时处理,并且后台也做了120秒校验(这点貌似不错),还有一点不错,页面中将disabled="disabled"去掉,下一秒秒数刷新会重新加上,另外京东的响应消息都是({"info":"\u65f6\u540e\u91cd\u8bd5"})这种ASCII码,不过京东只做了手机号的次数24小时限制,也就是说一台电脑可以换着任意的手机号进行请求。(这些都可以通过redis简单实现)
3.途牛网
请求url:https://passport.tuniu.com/ajax/sendMobileCode
post方式:tel=18120177459&identify_code=7j79&isReg=1
成功:
{
"success":true,
"errno":0,
"errmsg":"动态口令已发送到手机。",
"data":null
}
失败:
{
"success":false,
"errno":-2,
"errmsg":"验证码输入错误",
"data":null
}
总结:途牛的限制非常简单就是每个验证码对应3次手机校验,过后则需要重新发送校验,页面中也很有意思,途牛前端竟然写了三个显示发送按钮,我冒昧加了注释
<div class="phone_code_div"> //额,刚进来应该显示这个<span style="white-space:pre"></span><a href="javascript:void(0);" class="sendToPhone get-code">获取动态密码</a> //发送之后显示这个<span style="white-space:pre"></span><a href="javascript:void(0);" class="sendToPhone send-code" style="display:none;"><span>60</span>秒后重新发送</a> //重新发送应该显示这个<span style="white-space:pre"></span><a href="javascript:void(0);" class="sendToPhone send-code-again" style="display:none;">重新发送</a></div>
总之途牛并没有限制很死,这也是替客户着想。有钱任性。
4.苏宁易购
请求url:https://reg.suning.com/ajax/code/sms.do
Post方式:scen=PERSON_MOBILE_REG_VERIFY_MOBILE&phoneNum=15555317458&uid=6de279cf-5d64-4a99-98a1-35d638a04af8&code=abqw
成功:
{
"returnCode":"R0000",
"returnMsg":"成功",
"lessTimes":"1",
"domainLink":"",
"seqNum":"2"
}
失败:
{
"returnCode":"01002",
"returnMsg":"操作过于频繁,请稍候再试!",
"lessTimes":"",
"domainLink":"",
"seqNum":""
}
总结:苏宁限制比较严ip限制3次
5.淘宝:
淘宝的限制堪比互联网学习典范,很好的做到了安全可靠
- 短信验证码--小功能如何做到完美
- 短信验证码功能
- Android如何实现获取短信验证码的功能
- Android如何实现获取短信验证码的功能
- 短信验证码功能开发
- mycncart如何开启短信验证接口功能
- iOS 倒计时功能(短信验证码)
- Android注册短信验证码功能
- 读取短信自动填写验证码功能
- 短信返回验证码功能的实现
- android mob 短信验证码 功能
- ajax实现短信验证码功能
- android 获取短信验证码倒计时功能
- js ajax实现短信验证码功能
- JAVA短信验证码倒计时功能
- 多线程实现重获短信验证码功能
- java 实现短信验证码功能
- Android中短信验证码倒计时功能
- android之sqlite增删改查
- Tomcat7.0安装配置详细(图文)
- 数据结构学习笔记——线性表的逻辑结构
- 利用eclipse export功能制作可执行的jar包
- JQuery总结复习
- 短信验证码--小功能如何做到完美
- Obj-C与javascript交互之WebViewJavascriptBridge
- Shell脚本使用TinyPng批量压缩图片
- BM25算法浅析
- 数据结构学习——线性表
- 大一的第一个作品--【贪吃蛇】
- Redis命令参考中文
- HA双机热备配置
- PowerPC指令集结构之同步指令:Sync和Isync