簡體   English   中英

php使用會話或cookie進行用戶授權

[英]php using sessions or cookies for user authorization

我為php用戶授權課程工作,現在我對會話和cookie感到困惑。 我了解到wordpress不使用會話,我問了一些php程序員,cookie是否足以保證安全。 他們中的大多數人說:為了安全起見,必須使用會話,可以修改cookie。

但是,我將hash_hmac(md5)函數與用戶的IP地址,密碼和Cookie的到期日期結合使用,並且沒有人可以解碼我的加密Cookie代碼。 現在,我認為Cookie可以像會話一樣安全。 現在,我想知道使用cookie是否比會話更快。 我進行了一些測試,發現使用Cookie比使用會話更快。

但是,我仍然想了解為什么wordpress不使用會話進行身份驗證過程。 也許我錯過了一些事情,因為我的許多編碼人員朋友都喜歡在授權過程中同時使用它們。 有人會讓我知道這個問題嗎? 謝謝。

我將hash_hmac(md5)函數與用戶的IP地址,密碼和cookie的到期日期一起使用,沒有人可以解碼我的已加密cookie代碼

您是否只是使用HMAC對cookie數據進行簽名? 聽起來像。 HMAC所做的所有事情就是證明消息未被篡改。 此外,IP地址限制將嚴重激怒某些代理服務器后面的用戶。

由於HMAC只是一個簽名 ,因此,除非單獨進行操作,否則仍可以讀取cookie數據並且將其完全解密。 如果您在該cookie中放置了任何數據,該數據將允許第三方以您的用戶身份監視對該站點的連接訪問(例如,用戶密碼的簡單無鹽哈希值),則HMAC完全沒有用。

如果要將機密信息放入cookie中,則應在此處使用真實加密,而不僅僅是對數據簽名。 (閱讀:兩者都做。)

如果您無法進行數據的實際的加密,數據是如此危險,它需要保護被窺視,那么你不應該在一個cookie被發送。 否則您的整個網站都應通過SSL進行服務 或兩者。

但是,讓我們來探討一下問題的實質:

如果您只是想確定當前用戶是否已登錄,那么會話是一個不錯的選擇。 很難使他們無法正常工作。

如果您要使用戶登錄的持續時間長於會話時間,那么cookie幾乎是最有效的工具。 但是,您不需要(閱讀:不應)在cookie中存儲任何有趣的信息。 您可以簡單地存儲一些隨機數據的哈希,並在數據庫中將其標識為屬於指定用戶。 這是您的瀏覽器/ IP限制可以發揮作用的地方。 當用戶當前未登錄時,請檢查cookie。 如果仍然有效,請設置其會話數據,並使用新的哈希值重新生成Cookie,從而使舊的哈希值無效。

請確保進行設置,以便同一用戶可以登錄到其他計算機而無需注銷其他用戶。 真煩人。

至於為什么Wordpress 據說避開了會議……好吧,Wordpress並不是優秀設計的典范,並且在幾乎可以在任何地方工作的名義上做出了一些重大妥協。 共享主機是地獄。

暫無
暫無

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

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