黑帽联盟

 找回密码
 会员注册
查看: 1338|回复: 0
打印 上一主题 下一主题

[系统安全] 解释session和cookie保存用户登录状态原理

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    本帖最后由 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的会话劫持。


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部