一文浅析短信验证码基础规则

3周带你玩转Excel!在行第一行家手把手带学+作业实战+答疑辅导,升职加薪快人一步,了解一下>>

登录注册密码这一部分的功能常常涉及短信验证的规则设定,分享小小干货。

验证码即使不去单独了解,也会常常在app中用到,验证码通常为4位或者6位,其实位数并不是很重要,因为4位随机数即使用机器去撞也不会短时间也不会撞出来,所以很多新兴的app也渐渐舍弃了“传统的”6位短信验证码,采用体验更好的4位验证码,在位数的事情上不必纠结。

失效规则

下面说一下短信验证码的失效规则,当然通常这部分的设计工作都由开发人员根据产品的安全性等级去设计失效规则,但有的开发人员会把这个锅丢给PM去考虑,这个时候就要PM配合给出一定的规则,分享一部分的规则供大家思考:

  • 同一手机号前3次短信请求,可由服务端判断给出60s的间隔限制,也可以在终端由交互样式阻碍用户持续请求,让用户安心等待再次获取;
  • 同一手机号第4-8次请求,则3分钟内为同一验证码,并且每次获取;
  • 同一手机号的请求,每天超过20次请求,则可直接锁定该手机号,拉入黑名单,拒绝其接下来的请求;
  • 对于同一种验证类型,如忘记密码,注册等,3次填入验证码错误,则验证码失效;
  • 短信接收时间基本在2-3秒,时间再长,有可能是运营商不靠谱
  • 图形验证码很容易被绕过,所以不建议使用图形验证码,登录注册找回密码等路径下,短信是相对保险的方式,图形验证码更多用于防止机器批量操作造成服务器压力;
  • 语音验证是锦上添花的功能,谈好第三方最好接口调用就好啦。

以上,是在做登录注册功能过程中遇到的问题及解决方案,对于不同的app的场景和使用的安全等级,可做具体的调整,低级干货,欢迎补充喵。

登录注册链路

另外,登录注册整个链路为改造做了几个迭代,想谈下几点心得:

1.已经过了在登录时勾选记住密码的时代了,再辣样做就有点傻了,可考虑帮助成功登录的用户记住密码,每次进入都自动登录,主动点击退出时再帮助用户清空密码;手机端一般都有续身份有效期的设定,所以用户正常使用或者覆盖安装升级都不会退出登录

2.很多app弱化了注册过程,让用户通过手机短信验证的方式直接登录,自动帮助用户创建帐号,让用户快速进入平台使用。其实是我个人偏向的方式,最简单的方式也是用户容易增强记忆的方式,谁又会忘记自己的手机号呢,基于手机号去拓展个人帐号,资料维护,安全保障,密码管理等,产品设计的理念还是简化逻辑和交互,让用户更清晰的知道你想让他做什么,以及看到页面后如何快速完成;还有一种方式是,参照格瓦拉,进入app后可随意浏览影片影院信息等不涉及帐号判定的功能,用户真正想要使用时再进行快捷的帐号注册和登录,能更好的增量用户。

3.网页端登录

  • 网页端扫码功能可做手机授权功能,比较常见的栗子就是微信客户端的直接点击手机授权登录的方式,该方式不止适合客户端类产品,网页端也适用,尤其对于企业级应用来讲。
  • 为安全考虑,网页端登录可以做双因子校验,即通过检测常用登录地点(IP库和IP位置解析这是个技术活)或长时间未登录的检测,可做帐号密码登录后的手机号校验,保证帐号安全,同样适用于企业级应用,个人应用没必要做的这样麻烦。
  • 最理想的方式还是利用授权或者其他安全认证的方式,确保手机端的帐号密码安全,利用手机端去完成网页端及客户端的登录,简单高效。

嗯,没有下一条了……

以上,小小经验,也请大家指正和补充,相互学习,

开始写东西第一天,争取一天出一篇,觉得自己的输出能力比较薄弱,想通过这种方式去学习书面表达,嗯~拜,see u tomorrow。

 

本文由 @ShirleyW 原创发布于人人都是产品经理。未经许可,禁止转载。

给作者打赏,鼓励TA抓紧创作!
3人打赏
评论
欢迎留言讨论~!
  1. 不行,换个手机号就能把你刷爆了

    回复
  2. 无网络状况下,如何检校密码是个问题,验证身份不通过服务器请求安全性还是不够的;天翼帐号这种应该是做相关合作的,倒也是个好思路,不过寻求合作需要付出其他商务成本了就

    回复
  3. 已经关注你了,加油。。。

    回复
    1. 谢谢

      回复
  4. 很多环节都会导致短信延迟,最大的应该是自己供应商

    回复
    1. 有些时候也会是接口调用问题,遇到过使用同样的运营商,不同的页面视觉

      回复
    2. 不同的页面延迟时间不同

      回复
  5. 加油

    回复
  6. 为开发同学喊个冤。短信接收时间不是开发同学可以控制的,这与选择的短信平台有直接关系。正规短信平台都是运营商网关发送(短信猫也需要经过网关),一级运营商(电信、移动、联通)会对二级、三级短信运营商的流量进行限制,也就是在短信量大时,网关会出现排队、阻塞等现象,这是正常的。正常情况下5秒内基本可以接收到,但如果遇到阻塞,时间就不好说了。所以不要在这个上面去打开发同学的板子啊 :razz:

    回复
    1. :cry: 我错了

      回复
    2. 😂

      回复
圈子
关注微信公众号
大家都在问