1

我将CodeIgniter设置为在数据库中存储会话,但它仍然坚持以下内容在 cookie 中:

a:4:{
 s:10:"session_id";s:32:"191668b039f27f1a4fa25586aaaf708e";
 s:10:"ip_address";s:14:"123.12.123.123";
 s:10:"user_agent";s:50:"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko";
 s:13:"last_activity";i:1336549698;
}9fed5a2005d9df3ccedff9589aa7d36f

所有这些也都在,default_ci_sessions所以我不知道为什么它也在 cookie 中!我之所以问,是因为关于本地存储用户身份数据的新欧盟 cookie 立法。我不完全确定这是否属于立法范围,但已经提出了担忧。

4

2 回答 2

1

这来自 CodeIgniter 会话库的逻辑(因为 PyroCMS 是用 CI 构建的)。我目前无法告诉您为什么会这样,但我也认为不需要将此类数据单独存储在 cookie 本身中。我将就此展开讨论,并在此处发布链接以进行跟踪。

编辑:https ://github.com/EllisLab/CodeIgniter/issues/1344

于 2012-05-09T09:22:48.813 回答
1

我很确定这与 CI Session 类和您可以设置的首选项有关。

当脚本检查 cookie 的有效性时,它(可能)根据 Input 类中的当前用户代理数据检查 IP 地址和 UA 字符串,无论您是否使用 DB 会话(in sess_read())来验证 cookie . 如果您使用的是数据库,它还会根据 cookie 数据检查数据库数据。

该脚本这样做是为了防止黑客攻击 - 理论上有人可以猜测或嗅探正确的 session_id、IP 地址或 UA 字符串,但所有这三个都会更难。

更多在这里http://codeigniter.com/user_guide/libraries/sessions.html

于 2012-05-09T13:35:21.157 回答