09月18, 2019

账号注册时是否要透传错误原因

背景

有同事提出在系统中注册时,之前已经注册过,提示“用户名或者密码错误”,让人很费解。应该提示“用户已存在”会更合理。

问题分析

  • 问题很容易复现
  • 老同事说应后端要求,具体需求不详,主要原因是因为安全问题,防止破解用户是否注册过从而进一步破解密码
  • 查询接口文档,详细描述了各个错误码,进一步发现代码中特殊处理仍有遗漏
  • 咨询后端同学,解释到xx部门安全检查时做此建议
  • 查询公司其他系统,并未出现注册时的类似提示,会正确提示“用户已注册”
  • google安全相关提示,说主要是登录时模糊提示可增加尝试用户名和密码的成本,从而提高撞用户名的行为门槛,可以理解。但注册时搜不到这样做的借鉴或者根据
  • 和同事讨论后,决定在注册时透出“用户已注册”

一些思考

  1. 合理怀疑我们会错了意或者xx部门并未建议针对注册流程也进行优化
  2. 即使有需求,也要思考是否合理
  3. 不合理的需求,我们是否say no了
  4. 这不是用户第一次提出反馈,在前一次出现反馈时,就应该有警觉性

实践

发现代码类似if elseif elseif处理了3出逻辑。

  • 想用switch优化,也很长
  • map映射
    • errno -> errmsg 是多对一的关系,如果key + value方式映射,会出现文案过度冗余,修改麻烦的问题
      • array:<文案string>
      • errno 映射到文案index

本文链接:http://fengbaiyang.cn/post/should-we-tell-user-the-true-reason.html

-- EOF --

Comments

暂不支持评论,如有问题,请发邮件至baiyang.feng@outlook.com。 望不吝赐教~