系统登录探究——(一)概述

系统登录几乎是所有系统开发过程中绕不过的一个课题。系统登录看似简单,但其中涉及的知识点还是很多的,要真正做好,是要花点功夫的。系统登录按照不同系统的安全要求会采用不同的策略,第一类是安全级别比较高的,比如网银系统和政府部门内部的政务网站,需要插入U盾CA认证登录,这类登陆的实现今天不讨论,感兴趣的点击这里。 第二类就是我们今天探究的普通网站的登录,比如开源中国,微博,豆瓣等网站的登录。此系列包含以下几个专题:

  1. 概述

  2. 验证码功能

  3. 自动登录功能

  4. 找回密码功能

  5. 总结

我们首先整理登录过程中可能出现的几种情况:

  1. 账号(邮箱)和密码输入正确,正常登录;

  2. 用户设置了自动登录,进入网站后无需输入用户名密码,自动登录;

  3. 账号或密码不为空且输入错误,错误达到3次以上需要显示输入验证码或者账号锁定一段时间内不得登录,这个根据实际需要选择,一般豆瓣、微博还有知乎账号都是密码输入错误三次以上跳出验证码,支付宝输入密码五次以上则两小时内不得再次登录;

  4. 账号或密码为空,直接在页面用js校验提醒,账号或密码为空的情况下不显示校验码;

  5. 账号和密码输入正确,但账号被锁定或者暂停,在封禁期内也不得登录,除非被解禁以后;

  6. 只记得账号,忘记了密码,通过向账号邮箱发送链接重新登录,并设置密码。

针对以上几种情况现总结登录的几个要点:

  1. 不能明文存储密码。这点非常重要,因为用户信息一旦泄露,明文存储的密码是直接暴漏出来的,这对网站来说无疑是灾难性的。所以用户注册以及登陆的时候,密码都是先加密在存储的。加密有几种方法,可以在页面用js加密密码,也可以传到后台用java算法加密,或者两者同时使用都可。密码现成的加密算法很多,这个无需自己实现,最常用的是MD5,SHA-1算法。

  2. 验证码功能。验证码的主要作用是防止非人为的注册和登录,近两年使用的手机短信验证登录也是手段之一。验证码是系统随机生成的一张图片,保存在cookie里面,每点击一次再重新生成一张新图片。验证码一般为4-6位的数字和字母的组合,验证码中尽量避免o和0这种易混淆的字母和数字,颜色不要太花哨,否则对红绿色盲用户有困难,可以加一些线条和点增加识别难度。

  3. 记住我,自动登录功能。用户每天在同一台电脑用同一账号登录同一网站时,可以设置记住我功能,这样在一段时间内无需每天输入用户名密码登录。

  4. 邮箱输入autocomplete功能。很多网站登陆账号就是邮箱,但邮箱的输入(@符号)对于不熟悉电脑的人来说是有点困难的,所以当用户输入邮箱前缀的的时候最好能自动匹配出AT后面的邮箱地址,这样用户体验会好很多,也可以用户避免输入邮箱地址错误的情况。

  5. 通过邮件发送找回密码功能。当用户忘记密码的时候,输入注册的邮箱后,系统会自动发送一个链接地址,用户去邮箱点击链接地址后进入系统重新设置密码。这里的链接地址是有时间限制的,一般为半小时,超过时间限制就失效,需要重新发送。

以上是系统登录探究的理论部分,先整理下思路,接下来将对以上要点写几个代码分析篇。


你可能感兴趣的:(登录,login,系统登录)