登录注册密码这一部分的功能常常涉及短信验证的规则设定
(资料图)
验证码即使不去单独了解,也会常常在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位置解析这是个技术活)或长时间未登录的检测,可做帐号密码登录后的手机号校验,保证帐号安全,同样适用于企业级应用,个人应用没必要做的这样麻烦。最理想的方式还是利用授权或者其他安全认证的方式,确保手机端的帐号密码安全,利用手机端去完成网页端及客户端的登录,简单高效。嗯,没有下一条了……
以上,小小经验,也请大家指正和补充,相互学习,