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

[讨论/交流] 关于CI的SESSION。

[复制链接]
发表于 2010-11-10 09:46:57 | 显示全部楼层 |阅读模式
在视频教程和群里听说不建议使用CI的SESSION。 也没说具体的理由。

前天我自己看了CI的SESSION没感觉到坏处,而觉得CI的会话想的还蛮好的,可以COOKIE(加密)+DB结合运用,感觉比使用PHP本身的会话更好些。

如果觉得CI的SESSION不太好用,能说说你的想法么?

如果可以大家一起把意见结合起来,有必要可以写给邮件到官方,有必要我们自己去尝试修改CI的SESSION,让CI用起来更好些,期待你每一个建议。
发表于 2010-11-13 09:33:22 | 显示全部楼层
客户端/服务端时间差异影响cookie存活时间,写码时得处理之
cookie最大4kb,超过失效(比如大量应用ajax)
服务端session无需考虑以上两个问题
发表于 2012-1-12 11:42:13 | 显示全部楼层
$_SESSION['name']

$this->session->userdata('name');

CI 的写法太长。
发表于 2012-1-13 14:50:22 | 显示全部楼层
session_id 必须变化才会更新 last_activity
发表于 2012-1-14 07:05:27 | 显示全部楼层
一年多前的话题,但还是应该回答一下。

CodeIgniter的开发人员并非新手,选择某些作法必定有原因。

能看懂英文的可参看:
http://en.wikipedia.org/wiki/Session_fixation#Countermeasures

安全的session处理正是大家在投诉的处理方法。

例如:

. 不使用GET/POST传递session_id,使用cookies来进行。

. Timeout session。

. 对每个请求重新生成session_id。

. 接收session_id时,验证其他信息,如ip地址,user agent等。

4KB限制是cookies的,若选择ci_session存放于数据库内,userdata并无4KB的限制。php自带的session是保存在文件中,在服务器上任何有管理权的使用者都能观看,甚至修改文件。CI使用数据库,多了一重保障。


Codeigniter以安全为首要考虑,安全总会是较麻烦的。对以简单为首要考虑,安全无所谓的人来说,这的确是不好用。


假若不想使用长名字。

$s = &$this->session->userdata;

使用$s('name')便可!没大不了。

本版积分规则