摘要:前端防暴力破解的一個設計地址描述傳統的防范暴力破解的方法是在前端登錄頁面增加驗證碼雖然能有一定程度效果但是用戶也跟著遭罪驗證碼越復雜用戶登錄的失敗率越高于是最近我想了一個新的設計前端在登錄時采用解密的方式獲取密鑰把密鑰與表單以前發往后端用
前端防暴力破解的一個設計 Demo 地址
https://github.com/GitHub-Laz...
描述傳統的防范暴力破解的方法是在前端登錄頁面增加驗證碼, 雖然能有一定程度效果, 但是用戶也跟著遭罪, 驗證碼越復雜, 用戶登錄的失敗率越高
于是最近我想了一個新的設計, 前端在登錄時采用解密的方式獲取密鑰, 把密鑰與表單以前發往后端, 用密鑰來代替驗證碼
具體細節如下
設計用戶在登錄頁面輸完用戶名密碼, 點擊登錄
js 向后端請求密文
后端生成一個隨機字符串和一個指定范圍內的隨機數
正向拼接 隨機字符串 和 隨機字符串隨機數的加密 得到密文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);
將密文傳給前端
前端通過循環破解隨機數
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 } }
把得到的密鑰和表單一起傳個后端
后端驗證密鑰的真假
測試經過測試10000次內md5加密前端用時不超過300ms, 用戶察覺不到, 但是暴力破解的難道確增加了幾千倍, 這意味這本來一個小時能破解的網站, 現在可能要一年才能破解
優勢整個流程對后端帶來的壓力幾乎為0
用戶無需輸入驗證碼
前端延時極小(對人來說)
對暴力破解影響極大
只需添加部分代碼, 無需更改現有的代碼
條件可控, 隨機數的范圍完全由后端決定
歡迎關注我的博客公眾號
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71622.html
摘要:前端防暴力破解的一個設計地址描述傳統的防范暴力破解的方法是在前端登錄頁面增加驗證碼雖然能有一定程度效果但是用戶也跟著遭罪驗證碼越復雜用戶登錄的失敗率越高于是最近我想了一個新的設計前端在登錄時采用解密的方式獲取密鑰把密鑰與表單以前發往后端用 前端防暴力破解的一個設計 Demo 地址 https://github.com/GitHub-Laz... 描述 傳統的防范暴力破解的方法是在前端登...
摘要:前端還有一個很重要的事就是設計。,中文版譯名為認知與設計理解設計準則。實驗室是布拉德弗羅斯特依照這個設計系統所建立的一套工具,可以前往的來試試。中文翻譯為流暢設計體系,是微軟于年開發的設計語言。微軟于年月日的開發者大會上公開了該設計體系。 showImg(https://segmentfault.com/img/bVbkgFI?w=1142&h=640); 想閱讀更多優質文章請猛戳Gi...
摘要:避免重定向重定向用和狀態碼,下面是一個有狀態碼的頭瀏覽器會自動跳轉到域指明的。除此之外還有別的跳轉方式元標簽和,但如果你必須得做重定向,最好用標準的狀態碼,主要是為了讓返回按鈕能正常使用。要提高性能,優化這些響應至關重要。 性能優化 減少Http請求: 1.盡量減少HTTP請求數 80%的終端用戶響應時間都花在了前端上,其中大部分時間都在下載頁面上的各種組件:圖片,樣式表,腳本,...
摘要:避免重定向重定向用和狀態碼,下面是一個有狀態碼的頭瀏覽器會自動跳轉到域指明的。除此之外還有別的跳轉方式元標簽和,但如果你必須得做重定向,最好用標準的狀態碼,主要是為了讓返回按鈕能正常使用。要提高性能,優化這些響應至關重要。 性能優化 減少Http請求: 1.盡量減少HTTP請求數 80%的終端用戶響應時間都花在了前端上,其中大部分時間都在下載頁面上的各種組件:圖片,樣式表,腳本,...
閱讀 746·2023-04-26 01:30
閱讀 3301·2021-11-24 10:32
閱讀 2179·2021-11-22 14:56
閱讀 1979·2021-11-18 10:07
閱讀 553·2019-08-29 17:14
閱讀 624·2019-08-26 12:21
閱讀 3103·2019-08-26 10:55
閱讀 2940·2019-08-23 18:09