我在一個項目的開始,當用戶驗證時將有一個「記住我」選項。用PHP創建一個「記得我」系統的安全方式是什麼?
我的用戶的數據庫表有認證的基本結構如下:
- ID:當用戶註冊產生的隨機數。 (密鑰)
- 用戶名:用戶選擇的用戶名,可以更改爲另一個唯一的用戶名。
- 散列:設置密碼時用「phpass」創建的密碼的散列。
我想知道一種安全的方式來保持用戶使用cookie和MySQL登錄,即使在多臺計算機上。
我希望我可以使用相同的cookie來存儲臨時會話或「記住我」部分。我已閱讀有關令牌並將所有用戶信息散列到cookie中,但安全嗎?我檢查了用戶認證後使用的Facebook Cookie,並且存在用戶ID條目,對於我想做的事情是否真的有必要?
如果我決定散列信息到cookie,我應該使用「phpass」可能是較慢或簡單的MD5函數,看到驗證驗證將在每個頁面和每個AJAX請求?每次我驗證登錄時,是否應該續訂用戶令牌?
最後,我有什麼最好的選擇?我知道有很多類似的問題,但我沒有找到像這樣做的最佳方式。在我發現的每一篇文章中,關於這個主題都有不同和矛盾的地方。我想知道一個安全和乾淨的方式來做到這一點。
我還建議將用戶標識存儲在cookie中 – zerkms
有動態IP的連接有問題 –
如果您要保護安全性,那麼這是一個很小的代價。 –