2012-01-13 29 views
2

我讀過 Why does codeigniter store its sessiondata in a cookie?CodeIgniter爲什麼在cookie中存儲IP地址,用戶代理和上次活動?

,我仍然不明白爲什麼不笨需要存儲的IP,用戶代理和最後一個活動的會話cookie。會話ID不是它應該存儲在cookie中的唯一變量。我的Web應用程序將會話數據存儲在數據庫中 - 爲什麼這些數據仍然存儲在cookie中。此外,不應該Codeigniter從$ _SERVER var獲取IP和用戶代理?

有人可以澄清這一點嗎?我也讀過了CI的文檔,上面有Sessions http://codeigniter.com/user_guide/libraries/sessions.html,它說我的自定義會話數據也會保存在cookie中,但似乎並非如此。爲什麼?

回答

0

我想到的唯一原因就是安全性。如果有人竊取您的Cookie並嘗試以您自己的身份登錄,則有可能他沒有相同的IP和用戶代理。在這種情況下,CodeIgniter會檢測到可能的入侵併結束會話。

關於cookie中的會話數據,它取決於你告訴CodeIgniter關於在何處/如何存儲它。它可以在數據庫中,也可以在Cookie中以加密形式存在,也可以在Cookie中以純文本形式存在(序列化)。

+0

是的,但攻擊者可能只是改變cookie?他不能僞造存儲在$ _SERVER ['REMOTE_ADDRESS']中的自己的IP地址,但他可以在cookie中這樣做......我不明白如何在cookie中存儲IP可以帶來更多的安全性,實際上相當於對面?或者我錯了? – medonja 2012-01-14 00:10:22

+0

你說得對,那只是攻擊者可能會忘記的東西。實際上,當這種數據超出攻擊者範圍(例如:在數據庫中)時更有意義。在這種情況下,攻擊者甚至不知道IP/UserAgent的存儲情況,也無法重現。正如我所說,我只是猜測:) – 2012-01-14 00:16:41

相關問題