paip.提升使用者體驗與安全性----登入與許可權流程總結
判斷是否登入狀態...
1
多處登入及設定登入TOKEY..
1
保證密碼修改即時體現...
1
登入時顯示當前所有登入工作階段...
2
登入地點變更提示...
2
千萬不要在cookie中存放使用者的密碼。...
2
限制密碼出錯登入次數。。防止程式破解...
2
盜用COOKIE行為檢測...
2
使用驗證碼...
3
系統全域防守。...
3
使用第三方的 OAuth
和 OpenID 也不失為一個很不錯的選擇...
3
登入紀錄查看...
3
登入異常紀錄...
3
參考...
3
判斷是否登入狀態
除了判斷使用者名稱COOKIE是否存在正常,還要判斷-密碼修改序列==資料庫的。。否則視為已經在別個修改過密碼,需要重新登入
多處登入及設定登入TOKEY
因為多個裝置的原因,可能需要多處登入。。需要充許多個登入SESSION存在
需要在服務端儲存登入工作階段.COOKIE(sessionID,username,pwdSeq,sign,exp,createdate)
如果非常嚴格的情況下,需要執行單處登入,服務端只儲存此使用者的一個會話。。。
斷線時的處理:
提示使用者已經有一個登入工作階段了,如果需要強行清除此對話,可以通過安全問題等驗證。。
保證密碼修改即時體現
當使用者修改了密碼時,設定服務端的pwdSeq,為目前時間HASH
判斷使用者是否登入時,還需要判斷COOKIE中此pwdSeq,與最新的pwdSeq是否一致,如不一至,說明密碼已經修改,用戶端重設COOKIE,提示使用者密碼剛被修改,需要重新登入
登入時顯示當前所有登入工作階段
多處登入時,使用者可以查看當前所有登入工作階段,並且進行管理,踢出不正常會話..
登入地點變更提示
當登入地點與上次不一樣時,需要提示使用者。。“您的登入地點變更,上次登入地點在xxxx,登入IP是xxxx ,
登陸時間XXX.. 如果不是你本人登入,請及時修改密碼”
如果登入地點一樣,只需要提示使用者”你上次登陸時間XXX..
如果不是你本人登入,請及時修改密碼”
此外:使用者在使用者中心可以看到登入紀錄。包括失敗及成功的紀錄,以瞭解自己賬戶的安全情況..以便決定是否更改密碼等措施..
千萬不要在cookie中存放使用者的密碼。
- 加密的密碼都不行。因為這個密碼可以被人擷取並嘗試離線窮舉。所以,你一定不能把使用者的密碼儲存在cookie中。我看到太多的網站這麼幹了。
限制密碼出錯登入次數。。防止程式破解盜用COOKIE行為檢測
對比IP
使用驗證碼系統全域防守。
-
- 上述的防守只針對某一個別使用者。惡意者們深知這一點,所以,他們一般會動用“殭屍網路”輪著嘗試一堆使用者的口令,所以上述的那種方法可能還不夠好。我們需要在系統全域域上監控所有的口令失敗的次數。當然,這個需要我們平時沒有受到攻擊時的資料做為支援。比如你的系統,平均每天有5000次的口令錯誤的事件,那麼你可以認為,當口令錯誤大幅超過這個數後,而且時間相對集中,就說明有駭客攻擊。這個時候你怎麼辦?一般最常見使用的方法是讓所有的使用者輸錯口令後再次嘗試的時間成本增加。
使用第三方的 OAuth
和 OpenID 也不失為一個很不錯的選擇
登入紀錄查看
使用者可在使用者中心查看自己的登入紀錄,包括失敗與成功的,以找出不安全的登入。
登入異常紀錄
有利於提升使用者體驗,用來分析問題..可參照註冊環節的需要紀錄事項
參考
你會做Web上的使用者登入功能嗎?COOLSHELL