[英]Identify logged users in PHP
我一直在閱讀有關登錄,存儲密碼和用戶名的信息。 將密碼存儲在Cookie中是BIG NO 。 因此,我選擇僅在Cookie中存儲用戶名,這很好。 我將其存儲在cookie中,以便可以輕松訪問它並處理“記住我”選項。 但是如果我想通過SELECT * FROM databse WHERE username='$_COOKIE[]' AND password=''
我在考慮會議。 我可以在會話中存儲密碼,但不安全,但可以。 但是問題是當用戶關閉瀏覽器並重新打開瀏覽器時會發生什么。 他們將保持登錄狀態,但會話將消失,因此每次我必須檢查是否設置了SESSION [pass]時,請從數據庫中選擇它並進行設置。
那是我的解決方案,有人可以建議我做更充分的解決方案嗎?
事實是,沒有超級安全的系統,如果有人真的想闖入他們就會成功。
您可以有一個名為remember_tokens
的表,其結構如下:
id | user_id | created
------------------------------------------------------------------------
f129ea9c | 1 | 2-3-2013 12:31:51
e9ac8aa0 | 2 | 2-4-2013 08:21:13
id
具有一些唯一的ID,例如UUID
或隨機生成的字符串。 user_id
是要記住的用戶的ID。 created
是created
記錄的時間(因此您可以在X時間之后注銷用戶)。
現在,如果用戶成功登錄,並要記住,你添加一個新的記錄與獨特的id
和他的user_id
到remember_tokens
。 您還可以使用setcookie()
創建一個新cookie,其中將包含您剛剛插入的隨機生成的id
。
現在,當用戶下次請求該站點時,您會看到他已存儲了remember
Cookie。 您獲取該記錄,檢查其是否尚未過期,然后使用user_id
列登錄相應的用戶。 這樣,您就不會在Cookie中存儲敏感信息。
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.