2010-09-16 236 views
3

在查看我們的登錄系統以添加一些新功能後,我發現它不是很安全。 auth cookie是user id, stamp, version, PASSWORD IN THE RAW, and a cookie id的加密。至少我可以說我不是那種那樣做的人,以前的開發者就是這樣做的。 (是的,我知道密碼應該保存爲數據庫中的一個散列而不是純文本,原始開發者是這樣做的,我還沒有解決這個問題。)此登錄系統足夠安全嗎?

所以我做了很多關於在這裏和網絡上安全登錄並保護cookie。我可以看到它不是安全地做到這一點很容易。

關於網站

  • 這是一個電子商務網站,也有很多社區的東西(留言板,圖庫)
  • 登錄頁面被強制HTTPS
  • 所有的賬戶頁面和結算也被迫HTTPS
  • 當前密碼需要更改密碼或電子郵件地址

這是我的計劃:

目標:

  • 比布爾在多個地方
  • 需要重新登錄該商店的安全部件進行登錄,只持續30-60分鐘,cookie中設置安全只有
  • 選項來查看當前所有登錄
  • 選項在所有地方
  • 後臺登錄是安全註銷,並持續較長時間。對於辦公

    user gets page: 
        no auth: 
        have user sign in with username & pass   
        create new token 
        expires = 
        https on store: 30-60 min 
        backend in office: 5 days 
        backend remote: 30-60 min? 
        regular without remember me: session or 24 hours? 
        regular with remember me: 30 days 
        insert into user_session 
        set cookie 
        auth: 
        token in db: 
        set uid 
        generate new token, new expires, insert into DB, remove old? 
        upddate cookie 
        token not in db: 
        logout, requre sign in 
    
    
    
        table user_session: 
        uid 
        uid_as (for being 'logged in' as another user, admin feature only) 
        token 
        type 
        ip address 
        expires 
        stamp 
    
    
        cookie value: token|hash(token + user id, server key) 
    

從我讀過的所有限制外登錄,那就是我想出了。我確實覺得我錯過了某些東西。除了在整個網站上使用HTTPS之外,我的計劃或方法是否存在任何問題? (它會導致一些問題,但我會在稍後看到)

+0

我在這裏看不到任何與編程有關的東西。投票遷移到服務器故障,它看起來主題。 – 2010-09-16 16:35:26

+0

我看到一個表模式和一個用於創建cookie值的算法。看起來像編程給我。 – webbiedave 2010-09-16 17:00:31

+0

任何事情,以防止會話固定? – Wrikken 2010-09-16 17:10:42

回答

1

聽起來像是一個很大的進步 - 您的cookie值仍然可以被另一個用戶劫持,特別是如果用戶不是logout(銷燬有關會話的數據庫信息)。只是要注意的事情。

如果您想一次支持多次登錄,則需要考慮每個會話的所有(壞計劃)或唯一令牌的相同令牌。在後一種情況下,您需要將會話綁定到IP--這也會削弱從另一臺計算機中篡改令牌的能力。

對於關鍵交易(如果有),您可能還會要求用戶重新確認其密碼(通過HTTPS)。

+0

1)雅,cookie的價值可以被劫持,只是想盡量減少。 2)雅,我打算爲每個會話使用不同的標記。至於把IP綁在它上面,我們很早以前就用我們現有的系統做到了這一點,但是它給我們的客戶帶來了很多問題(我們有很多客戶在使用aol)情況與當時情況相同嗎? 3)我打算讓用戶重新確認他們的密碼以瞭解關鍵的事情。 – Echo 2010-09-17 13:58:27