2009-10-17 73 views
1

我希望我的應用程序的用戶在很長一段時間內保持登錄狀態。問題是會話在服務器端過期,從而失去了存儲在會話中的變量。所以,我將會議在10天內過期。PHP會話:如果我將會話期限設置爲10天,該怎麼辦?

我的問題是:是否存在將GC過期和cookie壽命設置爲10天的任何安全或性能問題?

ini_set('session.cookie_lifetime', 864000); 
ini_set('session.gc_maxlifetime', 864000); 

回答

2

顯然更大會話超時更大的Cookie /會話劫持的風險,但是,除非你正在處理高度敏感信息(健康記錄,網上銀行等),我會傾向於爲你做的做。其實我有。

+0

謝謝。我的想法是:要比將數據存儲在數據庫中並在每次會話過期時檢索它更好。乾杯! – Amer 2009-10-17 03:04:28

0

您將增加會話劫持的風險。

我會定期調用session_regenerate()。這樣可以緩解真正登錄的用戶的風險,但對於那些沒有登錄的用戶則無所作爲。

+1

讓我想起讓用戶登錄的另一種方式是「記住我」Cookie,但第二個想法是,它也會因爲會話劫持而受到攻擊。我正在構建的應用程序不處理任何敏感信息,因此會話劫持不太可能。 哦,我已經使用session_regenerate(),只是我希望用戶保持登錄狀態,即使他不採取任何行動或離開網站一整天。 謝謝:) – Amer 2009-10-17 03:12:55