黑帽联盟

标题: 解释session和cookie保存用户登录状态原理 [打印本页]

作者: yun    时间: 2016-12-23 05:27
标题: 解释session和cookie保存用户登录状态原理
本帖最后由 yun 于 2016-12-23 05:29 编辑

为了解决这种问题,PHP实现登录一般使用SESSION来实现用户的登录,验证用户名和密码之后,将用户的信息保存至SESSION中。

同时给客户端分配一个SESSION_ID,此SESSION_ID是存储在客户端的cookies中的。当你访问别的页面时,http会将当前的cookies

作为header头的一部分,发送给服务器,服务器根据此SESSION_ID,如果有值,去取存储在SESSION中的信息。至此,实现了用户

状态的保持。(此实现方式有多种,原理就是这样,许多网站不一定使用SESSION来存储用户信息,但是基本上还是需要cookies来

使用户访问不同页面时,用户的状态一直能被服务器获得)


在你的问题的描述中,如果你换了一台机器,这时候,cookies中并没有相应的SESSION_ID,访问我购买的宝贝页面时,这个页面

在业务上,限定了只能登录的用户才能访问,而此时,程序又拿不到对应的用户状态,因此会进行跳转。

看到这里,你应该能够想到一种bug:当某黑客获得了一个已经登录用户的SESSION_ID的话,那么服务器程序就会认为此黑客就是

这个用户,这样黑客就有权限访问用户的所有页面了,专业点的名词好像叫php的会话劫持。







欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5