codetc - 网站开发技术 首页 后端 PHP 查看内容

安全的cookie登录方案设计

2015-4-23 00:22| 发布者: CODETC| 查看: 2194| 评论: 0

对于一些高负载的WEB应用,通常会通过cookie来实现登录,其优点一是可以减轻服务器压力,相对于使用文件存储的session来说减少磁盘压力,避免给磁盘造成过多的碎片;二是在做集群的时候,可以免去session同步的问题。

但我们都知道web是基于HTTP协议传输的,传输过程使用明文是极其危险的,随便哪个抓包工具分析下数据包,就over啦,一个加密的传输过程应该包括两部分,一部分为身份认证,用户鉴别这个用户的真伪;另外一部分为数据加密,用于数据的保密。


大概的流程是这样的:
(1)生成用户验证token
用户登录后生成一个token,该token可能由如下信息组成:username+ip+expiration+salt【只是举例】,然后将组成信息用可逆加密函数加密得到token,并将该token保存到数据库,写入cookie;

(2)最后这样去校验信息,判断用户的登录状态
 将token解密,验证用户username,如果存在,继续;然后验证token是否和存入数据库的token相同,如果相同继续;验证cookie的有效期expiration,如果有效继续;验证ip是否变化,若变化跳入登录…… 甚至还可以验证user agent.

(3)可以做到单终端登录,可以将token放到数据库,每次登录操作必然会改变token的值,另外一端的用户就会token验证失败下线

最后说明:
1.上面保证了token每次登录都会不一样,这会导致之前的token【既cookie】失效
2.cookie的有效期最好不超过一周
文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-182-1.html

最新评论

 作为游客发表评论,请输入您的昵称

返回顶部