2016-01-27 56 views
0

我正在製作一個網站,使用PHP會話進行「登錄」並擁有一個帳戶。默認情況下,由於Cookie過期,用戶在關閉瀏覽器時會註銷。我想爲網站實現「記住我」或「讓我登錄」功能。我已經考慮過兩種可能的解決方案。PHP會話記住我功能

  1. 擴展會話cookie的壽命,從而當用戶關閉他們的瀏覽器
  2. 添加第二個餅乾與標識所述用戶字符的隨機生成的序列它不會過期。該密鑰將與數據庫中用戶的ID相關聯。當用戶訪問該站點時,將從數據庫中檢索key/id對,如果它們匹配,則用戶將登錄。顯然,Cookie將僅爲http。

每種類型的方法有哪些優缺點,是否會造成嚴重的安全風險?另外,有沒有更好的方法來解決這個問題?謝謝。

+2

單獨延長會話cookie生存時間不會有幫助 - 您需要將session.gc_maxlifetime設置得更高,否則GC可能會同時清理會話文件。 //這就是說,你不應該爲此使用會話(已經提到的GC是一個因素 - 你很可能會得到很多「孤立」的會話文件,仍然佔用硬盤空間)。使用具有足夠安全標記值的不同cookie來識別之前已登錄的用戶。 – CBroe

回答