2011-07-09 128 views
2

如何記住一個登錄時沒有安全問題的用戶?目前,我將ID和GUID存儲到兩個不同的cookie中,並在沒有會話存活時進行比較。如果匹配,我重新創建會話。順便說一句,id和guid都沒有加密。餅乾安全問題

這種方法是否足夠安全,還是應該遵循一種相當獨特的方式?

回答

1

由於使用XSS可以很容易地竊取cookie,因此如果您只將信息放入一個或兩個cookie中,則無關緊要,因爲盜竊將把所有信息都帶走。

我已經解決了一個更復雜的過程:我把一個加密的餅乾分成兩部分(但2個餅乾也可以),一個固定和每個會話的其他變量。兩者都保存在服務器端以檢查:它們只是會話標識符,cookie中沒有包含明智信息,與用戶標識的對應關係保存在服務器上。

如果一個假的用戶用一個被盜的cookie進入賬戶,那麼可變部分(或cookie)將會改變,所以當真正的用戶再次連接時,他將不能進入,並且您將證明發生了未經授權的訪問:那麼你可以刪除服務器端的固定會話(由固定部分或cookie定義),以避免盜用任何進一步的訪問。真正的用戶將重新登錄並使用新的cookie創建新的永久會話。您還可以警告他,您看到了安全漏洞,建議他重置密碼(該操作絕不應直接從cookie訪問)或使用其他瀏覽器進行不安全的導航。

如果您保存更多用戶信息(用戶代理,IP位置),您也可以檢查cookie的有效性,以避免虛假用戶的第一次入口。