Cookies存储用户登录信息问题

  Cookies存储用户登录信息,代替Session可以实现负载平衡多台服务器间session不共享问题,但Cookies保存在浏览器端本身是有很大安全问题的,可以通过下面方法实现模拟Session的方法来保障安全:

1、用户提交登陆表单并且服务器端接收

2、确认密码登陆无误以后生成一个sid(SessionId)和CryptedCode(已加密的信息)

3、将步骤2的数据存进数据库或者nosql(同时保存SessionId的有效时间等信息,模拟Server自带Session机制)

4、服务器将CryptedCode作为Cookie返回给客户端。

5、客户端请求相关资源的时候连同cookie提交服务器端

6、 服务器端将相关信息进行加密得到_CryptedCode与步骤2的CryptedCode做对比,如果相同,则放行请求,并从数据库中取出SessionId进行操作。

 

几个说明

1.步骤4也可以将SessionId作为cookie返回客户端,在步骤6中通过SessionId取出数据库存好的CryptedCode与这次请求加密好的CryptedCode做比对,相同则放行。

2.为了防止客户端伪造、盗用cookie,因此需要生成一个CryptedCode,步骤6里的相关信息可以是Cookie的时间戳、UserAgent信息、用户名、服务器存储的密码盐等特征信息。生成算法任选,安全性高一点的可以直接选择多次加密。

 

参考资料:

http://www.oschina.net/question/1539302_164494

posted @ 2017-07-07 16:32  爱吃土豆的男孩  阅读(637)  评论(0编辑  收藏  举报