你是否有认真设计过找回密码的流程?

找回密码功能对产品经理的逻辑思维是一个不小的考验。

(一)

首先,用户在找回密码时,心情是略带急躁、不平稳的。这时候要避免大量的输入,特别是需要大量调取记忆内容的输入项。

所以,找回密码设计的核心之一是:找出账号和密码之间最核心的关联关系,给用户最简化的流程。

如果你的账户体系是单账号登录体系(如只使用手机账号作为登录账号),除了要有使用短信找回密码的入口,还需要有申诉入口(人工处理)。比如,手机换号就是挺蛋疼的事情。

流程1:登录困难->忘记密码,找回->输入手机号->获取验证码->输入新密码。

流程2:登录困难->手机号不能用->人工申诉->验证账号所有权->人工修改登录账号与密码。

此时,申诉的入口挺重要的。

如果你的账户体系是多账号体系(如可使用账号、手机号、邮箱登录),在找回密码时,可以选择通过什么渠道找回密码,流程分解同上。

当可登录账号数等于2,如果是 账号+手机或账号+邮箱,跟单账号登录体系无多大差别,这时候申诉入口显得同样重要;如果是手机+邮箱,则两个登录账号同时无法使用的概率较小,申诉的入口则显得不那么重要。

(二)

无论流程怎么设计,找回密码里最重要的一环是验证账号相关性和账号密码找回凭据有效性。

什么是账号相关性?

比如登录账号是testxss,关联的手机登录账号是15017592905,则testxss和15017592905 具有相关性,修改testxss 时不能输入别的手机号。

什么账号密码找回凭据有效性?

比如15017592905手机验证码为3214,输入验证码时一定要检查3214与手机号15017592905 是否关联,一旦用户输入的验证码和手机具有关联关系,生成修改密码的有效凭据,凭借此凭据修改对应的账号的密码。

在修改密码的过程中,毫不夸张地说,有超过1成的产品找回密码流程存在「越权修改密码」的逻辑漏洞。

比如下面的找回密码流程:

步骤1:输入手机号

步骤2:获取手机号验证码

步骤3:验证手机号和验证码是否吻合,如果吻合,进行步骤4;如果不吻合,进行步骤1或2;

步骤4:输入新密码

步骤5:提交修改(此时提交的参数有手机号、新密码)

流程乍一看,没什么问题,但是黑客只需要在步骤5上抓包,把手机号修改一下,就可以成功修改任意手机号的密码,所以就有了重置任意用户密码的漏洞。

所以,在步骤5,必须有找回密码的凭证(可以连同验证码一起提交,在步骤5才验证手机号和验证码是否吻合;或者在步骤3生成唯一凭证,该凭证与手机号有关联),证明本次修改密码的账号与前面输入手机号账号是一致的。

(三)

最后,个人挺讨厌在手机端找回密码时需要输入两回密码的(一次是新密码,一次是验证新密码);也有人说两次是强化记忆,但仍觉得没有输入两次密码的必要:

大部分人用的多是重复密码
复杂密码需要重复切换手机键盘,容易误打,体验糟糕。
强化密码可以通过「可视密码开关」来让用户进行二次确认,比如长按某个icon,可以显示密码,松开则隐藏。

再强调下,修改密码最重要的是逻辑健壮,避免越权修改漏洞。

专栏作家

歪,微信公众号:程序员和产品经理。产品经理专栏作家,关注移动医疗,移动网页、APP设计。

关键字:产品设计, 找回密码功能, 账号相关性, 密码

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部