短信验证码--小功能如何做到完美

来源:互联网 发布: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.淘宝:

淘宝的限制堪比互联网学习典范,很好的做到了安全可靠



0 0
原创粉丝点击