當我說下面的「會話」時,我的意思是CI會話,而不是PHP會話。
如果使用默認選項(該手冊說不應被用於敏感數據),然後回答你的問題是,它不知道。它信任cookie。
要以設計的安全方式使用它,您應該使用數據庫會話選項以及加密選項。使用這兩個選項,這是您的問題的答案:
只有一個值存儲在cookie中。該值是一個序列化和加密的數組。該數組包含四條信息。
- 'SESSION_ID',=>隨機散列
- 'IP_ADDRESS'=> '串 - 用戶IP地址'
- 'USER_AGENT'=> '串 - 用戶代理數據'
- 'last_activity' =>時間戳
會話ID是一個隨機字符串。這是用於與會話表中的數據關聯的字符串。該字符串會重新生成(並重新加密)每個請求並在cookie和表中進行更新。如果這與會話表值不匹配,則表數據將無法訪問,並將被捕獲到內置垃圾回收中。
(可選)您也可以在CI會話類中強制執行IP檢查。這意味着,除了隨機重新生成會話ID之外,他們的用戶IP還必須保持一致,否則會話將被銷燬。
(可選)也可以強制執行UA檢查和超時值。
因此,傳統會話文件永遠不會寫入緩存文件夾中。 CI Cookie會話對於除個人數據之外的所有數據都是毫無價值的,例如記住Web界面的UI狀態。 CI數據庫會話非常靈活。如果您的PHP安裝包含Mcrypt,則安全性也很強大。如果你沒有Mcrypt,他們仍然是相當安全的,但不會通過,例如PCI合規。
你可以閱讀更多的CI manual,但是這是我認爲最相關的問題的信息的摘要。
將數據存儲在加密的cookie中是一種方法。沒有理由浪費會話上的I/O資源。 – Xeoncross 2011-11-10 22:16:36