2015-09-06 72 views
0

那麼,「記住我」 - cookie中保存什麼? -PHP

在過去,當客戶端連接到該網站,我保持它爲$_SESSION

現在,我想用cookie來記住「記住我」的可能性。

出於安全原因,我應該如何放置cookie的價值?

謝謝。

+1

這個問題已經回答了[這裏](http://stackoverflow.com/a/244907/1292092)。 – curtis1000

回答

1

短期用戶身份驗證通常使用會話,而長期身份驗證依賴於存儲在用戶瀏覽器中的長期cookie。用戶通常會將此功能體驗爲標記爲「在此計算機上記住我」的複選框。實現一個記住我的功能,而不建立一個可以利用的微妙後門需要一個小小的工程專長。

天真的解決方案:只存儲用戶憑據在cookie

的,看起來像remember_user=1337長期驗證的任何解決方案是敞開的濫用。由於管理員帳戶通常具有較低的用戶ID,因此remember_user=1幾乎肯定會將您登錄到特權用戶帳戶。

持久認證令牌

另一種常見的策略,容易更談不上攻擊,是隻生成一個唯一的令牌當用戶檢查「記住我」複選框,獨特的標記存儲在cookie ,並有一個數據庫表,將令牌與每個用戶的帳戶相關聯。有很多事情在這裏仍然可能會出錯,但毫無疑問,這是對先前策略的改進。

Source

爲了更深入的瞭解,我強烈推薦這款Implementing Secure User Authentication in PHP Applications with Long-Term Persistence

+1

感謝您的信息(: – UnderPhp