2010-12-03 58 views
2

我讀過使用數據庫存儲會話變量比將它們放入cookie更安全。我是否需要在CodeIgniter中手動激活會話變量的加密?

如果您使用CI會話庫並將其設置爲存儲在數據庫而不是cookie中,它會自動加密會話ID變量嗎?

大家都說在數據庫中存儲會話變量時最好使用加密,但我不確定是否有另一個選項必須打開才能進行加密。

另外,如果您確實需要自己激活加密步驟,您將在哪裏設置密鑰?它是否是同一個加密助手類的一部分?

回答

5

不,CodeIgniter在存儲會話數據時不會自動加密會話數據,無論它是在MySQL數據庫還是在客戶端使用cookie。

在system/application/config/config.php中設置0​​將激活cookie的加密。如果使用$config['sess_use_database'] = TRUE,那麼cookie本身(存儲客戶端)將被加密,但實際會話變量(存儲在數據庫中)不會。

我的猜測是,這是因爲加密存儲在服務器端數據庫中的數據與使用cookie存儲實際會話變量時並不重要,因爲用戶無論如何都無法在數據庫中看到或修改會話變量。

加密密鑰需要設置使用$config['encryption_key']加密工作。

+0

「加密存儲在服務器端數據庫中的數據並不重要」,所以我們爲什麼要在數據庫中散列密碼?假設應用程序將敏感數據存儲在數據庫中存儲的會話中,例如信用卡號碼。我認爲應該在會話中存儲加密數據,而不管它存儲在服務器端還是客戶端。 – SaidbakR 2014-09-19 17:30:33

相關問題