摘要:前端防暴力破解的一個設(shè)計地址描述傳統(tǒng)的防范暴力破解的方法是在前端登錄頁面增加驗證碼雖然能有一定程度效果但是用戶也跟著遭罪驗證碼越復(fù)雜用戶登錄的失敗率越高于是最近我想了一個新的設(shè)計前端在登錄時采用解密的方式獲取密鑰把密鑰與表單以前發(fā)往后端用
前端防暴力破解的一個設(shè)計 Demo 地址
https://github.com/GitHub-Laz...
描述傳統(tǒng)的防范暴力破解的方法是在前端登錄頁面增加驗證碼, 雖然能有一定程度效果, 但是用戶也跟著遭罪, 驗證碼越復(fù)雜, 用戶登錄的失敗率越高
于是最近我想了一個新的設(shè)計, 前端在登錄時采用解密的方式獲取密鑰, 把密鑰與表單以前發(fā)往后端, 用密鑰來代替驗證碼
具體細節(jié)如下
設(shè)計用戶在登錄頁面輸完用戶名密碼, 點擊登錄
js 向后端請求密文
后端生成一個隨機字符串和一個指定范圍內(nèi)的隨機數(shù)
正向拼接 隨機字符串 和 隨機字符串隨機數(shù)的加密 得到密文rstr+MD5(rstr+rint)
反向拼接 得到 密鑰 MD5(rint+rstr)
randomString = Utils.getUUID(); randomNumber = Utils.randomInt(range); privateText = randomString + Utils.md5(randomString+randomNumber); privateKey= Utils.md5(randomNumber+randomString);
將密文傳給前端
前端通過循環(huán)破解隨機數(shù)
let randomString = result.substring(0, 32) let valueString = result.substring(32) let answerString for (let i = 0; i < range; i++) { let s = crypto.createHash("md5").update(randomString + i).digest("hex") if (s == valueString) { answerString = crypto.createHash("md5").update(i + randomString).digest("hex") break } }
把得到的密鑰和表單一起傳個后端
后端驗證密鑰的真假
測試經(jīng)過測試10000次內(nèi)md5加密前端用時不超過300ms, 用戶察覺不到, 但是暴力破解的難道確增加了幾千倍, 這意味這本來一個小時能破解的網(wǎng)站, 現(xiàn)在可能要一年才能破解
優(yōu)勢整個流程對后端帶來的壓力幾乎為0
用戶無需輸入驗證碼
前端延時極小(對人來說)
對暴力破解影響極大
只需添加部分代碼, 無需更改現(xiàn)有的代碼
條件可控, 隨機數(shù)的范圍完全由后端決定
歡迎關(guān)注我的博客公眾號
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/96171.html
摘要:前端防暴力破解的一個設(shè)計地址描述傳統(tǒng)的防范暴力破解的方法是在前端登錄頁面增加驗證碼雖然能有一定程度效果但是用戶也跟著遭罪驗證碼越復(fù)雜用戶登錄的失敗率越高于是最近我想了一個新的設(shè)計前端在登錄時采用解密的方式獲取密鑰把密鑰與表單以前發(fā)往后端用 前端防暴力破解的一個設(shè)計 Demo 地址 https://github.com/GitHub-Laz... 描述 傳統(tǒng)的防范暴力破解的方法是在前端登...
摘要:前端還有一個很重要的事就是設(shè)計。,中文版譯名為認知與設(shè)計理解設(shè)計準(zhǔn)則。實驗室是布拉德弗羅斯特依照這個設(shè)計系統(tǒng)所建立的一套工具,可以前往的來試試。中文翻譯為流暢設(shè)計體系,是微軟于年開發(fā)的設(shè)計語言。微軟于年月日的開發(fā)者大會上公開了該設(shè)計體系。 showImg(https://segmentfault.com/img/bVbkgFI?w=1142&h=640); 想閱讀更多優(yōu)質(zhì)文章請猛戳Gi...
摘要:避免重定向重定向用和狀態(tài)碼,下面是一個有狀態(tài)碼的頭瀏覽器會自動跳轉(zhuǎn)到域指明的。除此之外還有別的跳轉(zhuǎn)方式元標(biāo)簽和,但如果你必須得做重定向,最好用標(biāo)準(zhǔn)的狀態(tài)碼,主要是為了讓返回按鈕能正常使用。要提高性能,優(yōu)化這些響應(yīng)至關(guān)重要。 性能優(yōu)化 減少Http請求: 1.盡量減少HTTP請求數(shù) 80%的終端用戶響應(yīng)時間都花在了前端上,其中大部分時間都在下載頁面上的各種組件:圖片,樣式表,腳本,...
摘要:避免重定向重定向用和狀態(tài)碼,下面是一個有狀態(tài)碼的頭瀏覽器會自動跳轉(zhuǎn)到域指明的。除此之外還有別的跳轉(zhuǎn)方式元標(biāo)簽和,但如果你必須得做重定向,最好用標(biāo)準(zhǔn)的狀態(tài)碼,主要是為了讓返回按鈕能正常使用。要提高性能,優(yōu)化這些響應(yīng)至關(guān)重要。 性能優(yōu)化 減少Http請求: 1.盡量減少HTTP請求數(shù) 80%的終端用戶響應(yīng)時間都花在了前端上,其中大部分時間都在下載頁面上的各種組件:圖片,樣式表,腳本,...
閱讀 843·2021-11-24 10:44
閱讀 2778·2021-11-11 16:54
閱讀 3159·2021-10-08 10:21
閱讀 2066·2021-08-25 09:39
閱讀 2899·2019-08-30 15:56
閱讀 3459·2019-08-30 13:46
閱讀 3493·2019-08-23 18:09
閱讀 2066·2019-08-23 17:05