用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1663|回复: 8
收起左侧

[讨论/交流] 谁能解释下这两句话的意思,晕死了我

[复制链接]
发表于 2013-7-8 00:12:48 | 显示全部楼层 |阅读模式

如果一个设置了7200秒,他两个小时后就过期了对吧、但又设置了300秒更新一次ID,,SESSION_ID都换了,他还能保持登录?
求大神解释下,详细点最好,谢谢了

发表于 2013-7-8 11:39:37 | 显示全部楼层
图片没显示
发表于 2013-7-8 13:26:59 | 显示全部楼层
刷新跟过期没关系呀~ 刷新之后还是有数据呀~ 里面参数没变~ 你这个就是保持一直不过期
发表于 2013-7-8 15:58:24 | 显示全部楼层
CI的session有一个过期时间,默认是7200,也就是2小时,即超过这个时间,你的登陆就失效了
另外一个是更新时间,默认是600,也就是10分钟更新一次,这样做的好处有几个
1,每隔10分钟刷新一次过期时间,也就是说只要你在2小时内有任何操作,每隔10分钟都会帮你更新你的2小时。
2,安全性,CI有一套加密解密函数,跟时间有关。能够在10分钟帮你替换掉原来的值。
也就是说如果别人获取不到的你解密key,是永远不能正确地解密,该key是CI运行session或cookie前提示你必须设置一个安全的key,你懂的,在config.php下。
3,你不要看它值变了就以为不能保持登录了,其实你可以拿着那个值,加上你的加解密key去解密,会获得一样的值,也就是说,cookie的值是动态的,因为它把unix时间一起加进去加密了,所以每次加密的值都不一样,一来可以让那些跟踪cookie的人摸不着头脑,而来,又能保持你的解密的值的一致性。具体的加解密函数请看system/core/security.php
 楼主| 发表于 2013-7-9 12:01:32 | 显示全部楼层
gogogo1027 发表于 2013-7-8 15:58
CI的session有一个过期时间,默认是7200,也就是2小时,即超过这个时间,你的登陆就失效了
另外一个是更新时 ...

呵呵,真心谢谢了,让人郁闷的是,值变了为什么还能保持登录呢?正常的SESSION是不可以的啊,难道CI内部进行处理了对吗?

发表于 2013-7-9 17:36:19 | 显示全部楼层
发表于 2013-7-9 17:54:28 | 显示全部楼层
CI剑 发表于 2013-7-9 12:01
呵呵,真心谢谢了,让人郁闷的是,值变了为什么还能保持登录呢?正常的SESSION是不可以的啊,难道CI内部 ...

CI的session跟正常的SESSION是完全不一样的两个东西,事实上,CI根本就没有用到系统的session机制,而是自己写了一套。
而且它的值可以作为cookie存储在客户端,也可以存储在数据库表中
 楼主| 发表于 2013-7-11 14:28:02 | 显示全部楼层
gogogo1027 发表于 2013-7-9 17:54
CI的session跟正常的SESSION是完全不一样的两个东西,事实上,CI根本就没有用到系统的session机制,而是 ...

明白了,感谢
发表于 2013-7-11 14:44:56 | 显示全部楼层
路过学习了~·

本版积分规则