背景
为给系统使用者,在系统层级建立用户画像,同时搜集用户使用数据,不断改善系统使用体验,任何系统(除简单小工具外)都会建立自身的账号体系。而账号密码登录是保证系统安全性的第一步。下文从防范、止损两个方面,阐述保证系统安全登录的措施。
防范
1. 密码本身
破解密码最简单基础的方法是“密码穷举”,所以密码越复杂越不容易被破解。我们一般我们从以下3个维度进行限制:密码长度、组成类型、其他限制。密码长度,一般长度限制在6-32位。比如,QQ、微信密码限制是8-16位;组成类型,有数字、字母、符号3种格式限制,但是一般只限制必须包含两种类型;其他限制,比如数字和字母不能是连续正序或连续倒叙,等等。对于密码强度验证,网上有很多校验规则,不一一赘述。
2. 操作人验证
主要验证的是人为操作还是机器脚本,最常用的解决办法是滑块或图片验证。(比如,天杀的12306.com)
3. 登录信息验证
登录信息分为:登录设备、登录时长、登录次数、登录终端。
登录设备,通常登录时会校验有无预设的登录信息,是否为陌生IP。如果陌生设备登录成功后,系统会自动给绑定的手机号、邮箱、App或微信发送异常登录信息,并且提供强制退登、修改密码、联系管理员等阻止登录的快捷操作链接。
登录时长,主要是针对B端系统,为信息安全性计,如果服务器判断用户为不存活状态,则释放登录信息,用户需重新登录。或者显示屏保图片,保护信息的安全性。
登录次数,一个IP地址短时间内登录次数超过上限,则设定该IP 30min内不可登录。输入错误密码超过一定次数,则限制该账号30min内不可登录。
单终端登录,对于非可共享账号的业务,可设置单终端设备登录限制。这里的单终端指的是不同类型的终端设备(一台手机、一台PC)。
5. 信息传输
对于敏感信息(比如密码),在客户端、服务器之间进行数据交互时,一般都采用加密技术(比如MD5)进行传输。作为PM,大概了解就行。
止损
在异常登录的前提下进行操作,或用户在进行敏感操作时(比如更改密码),为保证数据安全,仍需要对操作人进行动态验证。这里涉及到系统功能层级。