簡體   English   中英

識別PHP中的登錄用戶

[英]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。 createdcreated記錄的時間(因此您可以在X時間之后注銷用戶)。

現在,如果用戶成功登錄,並要記住,你添加一個新的記錄與獨特的id和他的user_idremember_tokens 您還可以使用setcookie()創建一個新cookie,其中將包含您剛剛插入的隨機生成的id

現在,當用戶下次請求該站點時,您會看到他已存儲了remember Cookie。 您獲取該記錄,檢查其是否尚未過期,然后使用user_id列登錄相應的用戶。 這樣,您就不會在Cookie中存儲敏感信息。

希望這可以幫助

以下是一些更詳細的答案供您遵循:

這個問題的答案中也收集了一些很棒的資源: 網站身份驗證權威指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM