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