gimho 发表于 2010-11-10 09:46:57

关于CI的SESSION。

在视频教程和群里听说不建议使用CI的SESSION。 也没说具体的理由。

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

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

如果可以大家一起把意见结合起来,有必要可以写给邮件到官方,有必要我们自己去尝试修改CI的SESSION,让CI用起来更好些,期待你每一个建议。

visvoy 发表于 2010-11-13 09:33:22

客户端/服务端时间差异影响cookie存活时间,写码时得处理之
cookie最大4kb,超过失效(比如大量应用ajax)
服务端session无需考虑以上两个问题

thenbsp 发表于 2012-1-12 11:42:13

$_SESSION['name']

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

CI 的写法太长。

wu1990 发表于 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')便可!没大不了。
页: [1]
查看完整版本: 关于CI的SESSION。