用户永久登录讲解(小兰发言)

19:21 2007-5-24

小兰发言了:

关于用户永久登录的一些历史背景……,引入了QQ登录,随后就来了CS VS BS的较量。

以前还以为永久登录只设置一个COOKIE,昨晚小黑一讲,原来对此理解大错特错了。。。。,在SEESION禁用的情况下,COOKIE为什么可以用呢?

杨煌插一句。。”在使用SESSION的时候,如果客户端的COOKIE没有被本地禁用的话,那么SESSION是先保存在本地COOKIE里的,但如果被禁用的话,那么就会保存到隐藏域里或者放在URL后的串里。。“。

首先讲讲COOKIE不安全一面。当我们第一次访问一个站点的时候,如果该站点有COOKIE,那么就会向本地注册一个COOKIE变量,那么我们下次再对该网站进行访问的时候,就可以访问该COOKIE变量,但是,如果在本地(客户端)对COOKIE的值(保存在本地的一个文件)进行更改,那么服务器是无法识别它是否是真实的值,即,接触该电脑的人都可能对该值进行串改,所以从这方面来讲,COOKIE是很不安全的,所以我们对敏感数据如果还是按照传统的方式对其进行保存的话,那么后果的严重性大家可想而知。

 讲到安全,杨煌给大家讲了讲关于加密方面的知识,就拿了SSL(安全套字层)的概念,一些简单的加密算法,来加强大家对加密这方面的印象。

小兰继续。我平时看了此网上的资料,都没有意识到这方面的东西,这方面的资料很少发现。首先在数据库里放一个字段,当然在对COOKIE的存储的时候,不可能把用户名和密码这些比较第三的数据放在里面,还加了过期时间等附加信息。对COOKIE做永久登录,我们做成一次验证,为了实现这样的效果,要让它在尽量少的时间时使其过期。。当数据库里多了这个标识后,当我们在用 个标识,这个标识符(使用随机数来生成的《为了避免重复,可以使它过期,当然使用时间戳,就可以避免这一点》)入库(用户名加随机串入库),别一标识符存放过期时间,然后用一个COOKIE变量将其进行保存,如果用户名随便串再加过期时间组合在一起,我们这样的重复性就比较小了。如果有效期输入登录的话,那么我们就不用输入用户名。

在这里所讲的都是假定一个固定IP,对于多IP的情况,我们在这里先不考虑。

如果我们下次登录的,就先用本地的COOKIE变量去和服务器里保存的变量进行对比,如果一样,我们就不用再登录,否则不能登录,如果发再我们保存的数据过期的话,那么就输入用户名,对有效期再一次进行注册。

来一个总述吧。

通过浏览器里的这个COOKIE到数据库里去找这个用户,如果这个用户所对应的用户有的吗?那么我就可以证明你已经登录了。这样就可以简化了用户了登录,而且用户数据是通过本地的COOKIE变量去库里查询的,所以数据就相对来讲,就安全多了。如果在有效期内进行登录,那么我们就不用输入用户名和密码,如果已经超过有有效期,那么就再次登录,重新注册COOKIE本地变量,那么和当前用户有关的数据在本地不可能得到,必需通过本地变量才能从库里得到和用户相关的数据,如果向我们直接把用户数据入在本地,那么很可以黑客就通过一些手段,或者是使用当前电脑人就很容易得到本地用户的数据。但是,如果我们只存入用户名,那么本地用户只能得到对它来讲毫无意义的一个数据,但这个数据对于服务器来说,它就可以得到用户相关的数据,但是这此本地COOKIE变量不通过我们的程序,如果不知道其中的规则,那么也是不可能得到用户数据的,所以只通过本地的COOKIE查询登录后用户需要用的相关数据,所以这样就可以大大提高数据对安全性。

20:35 2007-5-24

小兰

此条目发表在 phpoo 分类目录,贴了 标签。将固定链接加入收藏夹。

用户永久登录讲解(小兰发言)》有 2 条评论

  1. 机器人 说:

    小兰,讲的挺不错,加油!!!

  2. 小黑 说:

    小兰 加油

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>