为什么codeigniter将其sessiondata存储在cookie中?

时间:2011-07-26 17:06:57

标签: codeigniter

为什么Codeigniter会这样做?我的意思是,如果用户可以看到哪些数据存储在他们的会话中,那是不是很不安全?如果他们改变了cookie中的值,该怎么办?

4 个答案:

答案 0 :(得分:5)

嗯,这是关于用户的数据。如果他们想改变它......那又怎样?我不知道它是如何“不安全”。

可以加密会话数据,或使用数据库进行会话数据完整性验证。

The documentation is your friend; use it.


对于它的价值,它 似乎很糟糕,因为没有使用本机PHP会话。该文档声称这为开发人员提供了“更大的灵活性”,但考虑到该页面上列出的警告,我无法想象如何。

答案 1 :(得分:2)

在Cookie中存储会话是最糟糕的做法,每个浏览器都有cookie的大小限制,而cookie是每次发送请求时发送的东西,虽然它是简单的ajax请求,这种做法只会让你的请求变慢,我认为在为Codeigniter开发会话库时,他们可能会想到,用户只会在会话中存储少量数据,但是在Cookie中存储会话的简单愚蠢想法

答案 2 :(得分:1)

检查一下:https://bitbucket.org/xperez/core-session-storage-for-codeigniter

它是ci_session接口与本机php会话的包装器,因此也适用于memcached而不是DB。

干杯

答案 3 :(得分:0)

好吧,Codeigniter开箱即用的会话解释与PHP会话不同。如果你想通过$ _SESSION超级全局,你仍然可以使用PHP会话,但Codeigniter基本上将会话视为更方便的cookie。虽然,您可以将会话存储在我所做的数据库中,并阻止用户更改会话值。

如果您想要半安全会话变量,请使用内置的PHP变量,如果您不希望在数据库中加密Codeigniter存储会话值的麻烦。

详细文档中解释了所有内容:http://codeigniter.com/user_guide/libraries/sessions.html