在我们开发登录页面的时候,经常会有这样的一个需求:要求有记住密码的功能。这个功能肯定是用Cookie来做的。我们会把用户登录的信息存放在客户端的cookie里,这 样,我们每个页面都从这个cookie里获得用户是否登录的信息,从而达到记录状态,验证用户的目的。

但是,记住,我们千万不能把用户的密码放到cookie中,哪怕是经过加密的

那么怎么设计记住密码的功能了?下面是我在网上看到的一个思路,觉得不错,留下来看看:

cookie中,保存三个东西——用户名登录序列登录token

用户名:明文存放。

登录序列:一个被MD5加密过的随机数,每次以输入口令的方式登录后更新。

登录token:一个被MD5加密过的随机数,仅一个登录session内有效,新的登录session会更新它。

他们都会保存在服务器上,登录token是单实例登录。意思就是一个用户只能有一个实例。登录序列是用来做盗用行为检测的。如果用户的cookie被盗后,盗用者使用这个cookie访问网站时,我们的系统是以为是合法用户,然后更新“登录token”,而真正的用户访问时系统发现,只有“用户名”和“登录序列”相同,但是“登录token”不对,这样的话,系统就知道,这个用户出现了被盗用的情况,于是,系统可以清除登录序列登录token,这样就可以令所有的cookie失效,并要求用户输入口令。并给警告用户系统安全。

不要让cookie有权限访问所有的操作否则就是XSS***,这个功能请参看新浪微博的XSS***。下面的这些功能一定要用户输入口令:

1)修改口令。

2)修改电子邮件。(电子邮件通过用来找回用户密码)

3)用户的隐私信息。

4)用户消费功能。

Xss***参考:http://coolshell.cn/articles/4914.html


也可参考:discuz的处理