我想將用戶的認證信息保存在瀏覽器cookie中以進行持久登錄。正如他們所說,它絕對不可能將任何祕密信息(如密碼)存儲在cookie中,但爲了擁有諸如「記住密碼」之類的選項,我認爲沒有其他選擇。將登錄信息存儲在Cookie中
因此,如果用戶想記住他的登錄信息,並且我存儲了用戶名(電子郵件)+不是密碼,而是其他一些獨特信息,如Cookie中的HASHED DB ID。然後我應該檢查存儲在cookie中的哈希ID是否與存儲在Cookie中的用戶電子郵件相匹配。 正如我想任何人都可以很容易地看到存儲在瀏覽器中的cookie(例如在Firefox中,選項 - > Cookies)。
因此,這將是脆弱的,因爲有人從其保存的計算機中讀取cookie,然後在其他計算機上設置cookie並使用該信息登錄? (由於腳本將檢查存儲的電子郵件和數據庫哈希ID,它會匹配)?
這種方法能否在數據庫中不存儲其他信息(如會話ID等)的情況下進行改進? 謝謝
一種方法是簡單地存儲用戶的ID在cookie中,而且還具有非持續性驗證的cookie。具有ID cookie但沒有經過身份驗證的cookie的用戶可以瀏覽您的系統,但第一次嘗試進行更改時會提示您輸入密碼。如果密碼正確,則認證的cookie將被設置,用戶不會再被詢問。由於cookie是非持久性的,認證只會持續到會話結束。 – GordonM 2011-06-14 08:04:15
@GordonM,謝謝,我認爲amazon.com有相同的方法。我很想知道,如果您訪問cookie,可以說電子郵件+和一些散列信息,那麼您有多難在瀏覽器中設置這些cookie? – Roman 2011-06-14 08:15:28
我會在cookie中存儲很少的東西。持久性ID cookie將僅使用有問題的用戶的ID,而非持久性認證cookie將爲真或假。儘量避免在cookie中存儲更多的信息,而不是完成任務所必需的信息,就好像您發送的只是一個窺探黑客必須繼續使用的ID,而如果您發送其他信息可能會給黑客更多線索攻擊你的系統。 – GordonM 2011-06-14 10:49:52