在查看我們的登錄系統以添加一些新功能後,我發現它不是很安全。 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之外,我的計劃或方法是否存在任何問題? (它會導致一些問題,但我會在稍後看到)
我在這裏看不到任何與編程有關的東西。投票遷移到服務器故障,它看起來主題。 – 2010-09-16 16:35:26
我看到一個表模式和一個用於創建cookie值的算法。看起來像編程給我。 – webbiedave 2010-09-16 17:00:31
任何事情,以防止會話固定? – Wrikken 2010-09-16 17:10:42