日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何设计一个安全的登录流程

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何设计一个安全的登录流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自?如何設計一個安全的登錄流程


登錄是系統中最重要的一個功能之一,登錄成功就能擁有系統的使用權利,所以設計一個安全的登錄流程是十分必要的,那在一般登錄中需要考慮哪些重要因素呢?我們一一列表一下。


  • 使用https協議進行傳輸,雖然麻煩,但是很強的保護措施。


  • 強制用戶使用有一定強度且復雜的密碼,必須要有大小寫加數字,長度在8位以上,杜絕像123456之類的弱密碼。


  • 密碼不要明文保存到數據庫,CSDN當年使用明文存儲密碼導致用戶密碼被完全暴露,這個事件影響十分嚴重。所以造成不要使用明文存儲密碼,要使用像MD5之類的散列算法加密存儲,加密之前密碼同時還要加上一個不固定的salt值一起拼接加密,一般md5(md5(password) + salt)就可以了,這個salt是鹽,一起加密增加密碼的長度也增加了破解的難度,鹽一般設計為64位隨機生成的字符串,最好分開存放,假如用戶信息庫被攻擊了黑客也拿不到鹽的庫。不能使用可逆的算法,如果可逆,那如何保存密鑰是個非常棘手的問題,一般使用明文加密與數據庫中的密文對比就能確定密碼正確與否,我們不需要知道用戶的明文是什么,如果用戶忘了可以通過重置或者密碼保護問題修改密碼,這也比總明文存儲要好一萬倍。


  • MD5現在已經不是十分安全了,最好使sha256,sha512之類安全強度更高的散列加密算法。


  • 用戶名密碼錯誤不要單方面提示,如果密碼錯誤提示用戶說密碼錯誤這樣攻擊者就知道用戶名是對的,下次攻擊密碼,所以不管是用戶名還是密碼錯誤都給出同樣的提示:用戶名或密碼錯誤,或者別的不具體的提示的錯誤都可以。


  • 前端禁止用戶輸入導致sql注入的字符,后臺也要做sql注入的防護。


  • 保存歷史密碼,一段時間沒登錄的用戶再次登錄時提示要修改密碼才能登錄,這時新密碼不能和歷史密碼一樣,蘋果就是這么做的。


  • 保存每次的登錄信息日志,如果登錄的IP與以往有很大差別,要引導用戶重置密碼方可登錄。


  • 不要在cookie中保留用戶密碼,如果一定要使用cookie實現自動登錄,切記不要使用簡單的用戶名+密碼MD5保存到cookie,要把用戶ID、用戶名、過期時間、IP、不固定的salt等一起考慮進去,這個當然要可逆,服務端要進行解密才能難是否用戶自動登錄有效。另外,cookie要設置為http only,這樣就不能通過腳本訪問cookie,保證cookie的安全性。


  • 不要讓瀏覽器記住密碼,雖然記住密碼很方便,但也不安全,所以前端最好做控制。


  • 一段時間類的嘗試登錄失敗次數達到某個值,要鎖定用戶登錄,如失敗5次鎖定24小時?;蛘唛g隔性鎖定,如失敗3次后鎖定半小時,再失敗1次鎖定1小時,再失敗1次鎖定24小時。


  • 設置會話有效期,比如登錄后10分鐘不操作就失效,要重新登錄。


  • 驗證碼使用,加上干擾線,防止計算機能夠輕易識別,這樣也可以防止黑客以程序的方式來嘗試登錄。


  • 手機登錄的一般使用短信驗證碼的,控制驗證碼的時效性,即驗證碼一次有效,一分鐘內只能發送一次。


  • 有必要的要采用單點登陸,如果允許用戶多處登錄的要給用戶安全提醒。


  • 重置密碼最好通過郵箱發送一定時間內生效的重置鏈接,或者手機短信驗證碼,或者兩者相結合的方法。像一般的大公司都有設計一個動態密碼的東西,手機即一切,所以也要妥善保管自己的動態加密的APP,最好加上指紋或手勢。


  • 設置用戶可以登錄的IP,即IP白名單。像比如財務系統,限制財務人員只能在辦公室登錄系統。


先總結到這,沒有真正安全的登錄機制,正所謂道高一尺魔高一丈,我們要做到與時俱進。


總結

以上是生活随笔為你收集整理的如何设计一个安全的登录流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。