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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

轉(zhuǎn)載自?如何設(shè)計(jì)一個(gè)安全的登錄流程


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


  • 使用https協(xié)議進(jìn)行傳輸,雖然麻煩,但是很強(qiáng)的保護(hù)措施。


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


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


  • MD5現(xiàn)在已經(jīng)不是十分安全了,最好使sha256,sha512之類安全強(qiáng)度更高的散列加密算法。


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


  • 前端禁止用戶輸入導(dǎo)致sql注入的字符,后臺(tái)也要做sql注入的防護(hù)。


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


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


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


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


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


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


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


  • 手機(jī)登錄的一般使用短信驗(yàn)證碼的,控制驗(yàn)證碼的時(shí)效性,即驗(yàn)證碼一次有效,一分鐘內(nèi)只能發(fā)送一次。


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


  • 重置密碼最好通過郵箱發(fā)送一定時(shí)間內(nèi)生效的重置鏈接,或者手機(jī)短信驗(yàn)證碼,或者兩者相結(jié)合的方法。像一般的大公司都有設(shè)計(jì)一個(gè)動(dòng)態(tài)密碼的東西,手機(jī)即一切,所以也要妥善保管自己的動(dòng)態(tài)加密的APP,最好加上指紋或手勢。


  • 設(shè)置用戶可以登錄的IP,即IP白名單。像比如財(cái)務(wù)系統(tǒng),限制財(cái)務(wù)人員只能在辦公室登錄系統(tǒng)。


先總結(jié)到這,沒有真正安全的登錄機(jī)制,正所謂道高一尺魔高一丈,我們要做到與時(shí)俱進(jìn)。


總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。