用户
 找回密码
 入住 CI 中国社区
搜索
123
返回列表 发新帖
楼主: 她的鱼
收起左侧

[讨论/交流] 略微观察了一下codeigniter的session,觉得挺诡异

[复制链接]
发表于 2013-11-3 13:00:04 | 显示全部楼层
dren_a 发表于 2013-10-31 23:16
ci的session是用cookie方式存在客户端的,传统方法是存在数据库的。

传统方式也不是存在数据库的。。。。。。
发表于 2013-11-3 21:42:29 | 显示全部楼层
yuvista 发表于 2013-11-3 13:00
传统方式也不是存在数据库的。。。。。。

只能说“默认方式”不是存在数据库的,但是按照一般稳定性及可维护性的要求,存数据库是最佳实践,反正我见过的大公司的小组规范一般都是有这一条的。
发表于 2013-11-4 10:14:18 | 显示全部楼层
大家讨论的好激烈啊,其实我还不懂SESSION得运行机制。来学习了,
发表于 2013-11-4 10:57:00 | 显示全部楼层
Hick 发表于 2013-11-2 09:49
可能我有点不够潮流了,不知道谁把数据存在浏览器的 cookie 叫做 session 的。 搞 php 开发的,手册上关 ...


1. 要实现 Session,目前看最广泛使用的就是用 cookie,因为 HTTP 协议本身是无状态的,只有 Cookie 才可以保留状态,而这种状态是 Session 的实现基础,所以 Session 使用 Cookie 这是在正常不过的事情了。
换句话说:Session 只是一种技术,而如何实现是另一码事,比如 Session 数据可以放在文件中,数据库中,memcached 中等等,所以,要深刻理解一下什么是 Session
2. 关于数据存储在Cookie中,这个确实有超过Cookie存储大小的风险。另一方面,在分布式架构上,Sessoin存储在Cookie中是一种分布式Session的解决方案。
3. 关于加密,目前加密算法公开的加密方式很多,比如 RSA,但目前并没有方法去破解,所以加密算法公开并不是容易被破解的因素,所以,加密还是可靠的。

综合以上,Session 存储在 Cookie 中只是众多解决方案中的一种,使用或不使用全看开发者个人喜好。
发表于 2013-11-4 12:07:00 | 显示全部楼层
有些概念可能是没有绝对的对错,但是个人以为,既然要有 session 和 cookie 俩个定义,就需要区分清楚, 如果一定要把 "cookie里不止保存 session id的这种cookie"叫做session,  那不管是有没有过期时间的 cookie 都可以叫 session 了, 我想这个是大多数人都不认同的。  从这个角度上说,纠结 session 和 cookie 确实没什么意思了。

前面回复解密的问题确实忘了考虑服务器定义密钥之类的作法,确实不是所有可解密的都好破解。

从前面的讨论看,很多人都对一些技术手段如果只是拿来主义,容易造成错误认识,对一些高安全要求的东西,是要有更深入的了解和讨论。
发表于 2015-10-24 15:49:58 | 显示全部楼层
永恒forever 发表于 2013-11-1 13:06
好像 CI 的 session 是存在 cookie 里面的。我不确定,没看到代码,只是有一次遇到过,session 设置太多了 ...

谁说session是存在客户端的?

本版积分规则