2013-10-22 45 views
-1

當前,我設置了這樣的設置,當用戶登錄到其帳戶時,它會檢查數據庫中的cookies表。如果該用戶的數據庫中已存在一行,它將使用新的散列更新數據庫和用戶的cookie。如果該用戶不存在一行,它將在數據庫中設置一個新的散列,併爲用戶設置cookie。如果從其他地方登錄,則用戶從其他設備註銷

與此相關的問題是,如果用戶從其他設備登錄,則會將其註銷到任何其他設備上,因爲Cookie中的哈希值與其他設備不匹配。

我該如何解決這個問題?如果不是更新數據庫中的散列,而是每次登錄時都繼續添加新行,是否更好?

請幫忙。

回答

0

如果用戶已存在於數據庫 - 不更新哈希,只需使用哈希從數據庫來設置cookie的新用戶

+0

我也想到了這一點,但它使它不那麼安全。 – Burrows

+0

@Burrows爲什麼你認爲系統會變得不如現在安全? –

+0

交替散列比永遠保持相同散列更安全。 – Burrows

0

我每次登錄的時間添加新行。記錄他們登錄時的時間戳,然後您可以檢查並刪除任何過期的cookie,這樣您就不會有大量過期的cookie信息在附近存在。每次用戶登錄時我都會執行此檢查。

您還可能要考慮存儲IP和/或用戶代理。然後,您可以設置一個頁面向用戶顯示他們當前的會話,並讓他們選擇撤銷它們,如果他們想要的話。

相關問題