2012-02-29 37 views
5

如手冊所述:

注意:Session類不使用本機PHP會話。它 生成它自己的會話數據,爲 開發人員提供更多的靈活性。

但是,當我使用$this->session->set_userdata(array('sample_key' => 'sample_value'));,在phpinfo()存儲一些數據,我可以找到在sample_keysample_value

我希望部分

不使用PHP本身的會議

將意味着它從phpinfo()隱藏會話變量。

我一直認爲這可能是一個安全缺乏。它會是嗎?

看起來,這些值是urlencode ed。

+2

'phpinfo()'頁面在生產系統上根本不應公開訪問。我非常懷疑有人使用會話變量作爲使用自定義會話系統的理由。 – ThiefMaster 2012-02-29 21:14:58

+2

真正的安全問題是公開發布'phpinfo()'輸出。 – ceejayoz 2012-02-29 21:15:01

回答

0

CodeIgniter的「會話」只是將數據存儲在cookie中,並將其稱爲會話。本地PHP會話將數據存儲在服務器上,並在cookie中存儲「sessionID」。

phpinfo中,您可以看到變量,但它的會話的會話中,您看不到另一個用戶的會話。

+0

非常錯誤。有許多可用的會話驅動程序,其中包括將數據存儲到數據庫中的驅動程序。 – ceejayoz 2012-02-29 21:15:23

+4

@ceejayoz:我在哪裏說替代驅動程序不可用?我剛剛描述了默認行爲。 – 2012-02-29 21:17:34

+0

Cookie只存儲會話ID。將實際會話DATA存儲在cookie中將是一種可怕的安全風險,例如,保持客戶端cookie的「超級用戶= 0」會邀請各種「有趣」的東西。 – 2012-02-29 21:31:42