前言:
為什么需要實(shí)現(xiàn)前端加密呢凿叠?
1.?在 HTTP 協(xié)議下俯逾,數(shù)據(jù)是明文傳輸程腹,傳輸過(guò)程中網(wǎng)絡(luò)嗅探可直接獲取其中的數(shù)據(jù)匣吊。 如用戶的密碼和信用卡相關(guān)的資料,一旦被中間人獲取寸潦,會(huì)給用戶帶來(lái)極大的安全隱患色鸳。另一方面,在非加密的傳輸過(guò)程中见转,攻擊者可更改數(shù)據(jù)或插入惡意的代碼等命雀。HTTPS 的誕生就是為了解決中間人攻擊的問(wèn)題,但如今 HTTPS 的使用情況在國(guó)內(nèi)并不樂(lè)觀斩箫,基本是因?yàn)槌杀净蛘咝阅艿目剂?/p>
2. https協(xié)議需要到ca申請(qǐng)證書(shū)吏砂,一般免費(fèi)證書(shū)較少,因而需要一定費(fèi)用乘客。 而http不要錢(qián)
3.現(xiàn)在我們知道狐血,http協(xié)議是明文傳輸,只要?jiǎng)e人一抓包就可以獲取到傳輸?shù)膱?bào)文易核,很多人會(huì)問(wèn)匈织,是不是http傳輸時(shí)前端都不需要進(jìn)行數(shù)據(jù)加密了? ?呢? 這個(gè)觀點(diǎn)是大大錯(cuò)誤了耸成,我們通過(guò)下邊幾點(diǎn)來(lái)分析一下报亩,即便不安全也要加密的必要性
轉(zhuǎn)自:https://zhuanlan.zhihu.com/p/22289839
4.HTTPS還是有很多問(wèn)題浴鸿。
①使用TLS會(huì)導(dǎo)致客戶端和服務(wù)端的性能下降。這些性能瓶頸在IoT設(shè)備弦追,RFID設(shè)備上較為明顯岳链。
②我們無(wú)法完全信任服務(wù)器
對(duì)于問(wèn)題1,密碼學(xué)家們正在爭(zhēng)相設(shè)計(jì)更安全劲件、更高效的密碼學(xué)工具和協(xié)議以滿足特定的需求掸哑。如果您沒(méi)有在密碼學(xué)領(lǐng)域有深入的研究,請(qǐng)不要在Socket上或者在HTTP上設(shè)計(jì)自己的加密協(xié)議來(lái)充當(dāng)HTTPS零远。通常此行為是毫無(wú)意義的苗分,因?yàn)樯约臃治鼍湍芷平猓珙}主所說(shuō)"前端代碼都是直接可以看到的"(即算法是公開(kāi)的)
對(duì)于問(wèn)題2牵辣,我們只保證了通訊的安全摔癣,并沒(méi)有保證服務(wù)器端的安全,因?yàn)榉?wù)器的儲(chǔ)存可能被攻陷纬向。
我們儲(chǔ)存在服務(wù)器上的數(shù)據(jù)择浊,特別是用戶認(rèn)證信息怎么辦?用戶數(shù)據(jù)可以加密存儲(chǔ)(可以考慮IND-CCA2安全的混合加密)逾条。用戶認(rèn)證信息可以使用加鹽(Salt)的密碼散列函數(shù)(Cryptographic Hash Function)琢岩。
服務(wù)器竊取用戶認(rèn)證信息怎么辦?可以考慮使用成熟的OAuth2方案师脂。
服務(wù)器不正確的計(jì)算我想要的內(nèi)容怎么辦担孔?等等更多,等你成為密碼學(xué)家來(lái)研究吧吃警!
轉(zhuǎn)自:https://www.zhihu.com/question/25539382/answer/547509246
前端加密的情景:
1. 用戶的登錄信息糕篇。 (賬號(hào)、密碼汤徽。娩缰。。)
2. 用戶的私密信息谒府。(姓名、銀行卡號(hào)浮毯、家庭住址完疫。。债蓝。)
針對(duì)這2種數(shù)據(jù)壳鹤,我們對(duì)加密的要求也是有所區(qū)別的,后者重要性稍弱了前者
只有轉(zhuǎn)載鏈接:https://blog.csdn.net/ahilll/article/details/82459718
前端加密思路:
1.使用 https饰迹。 你甚至可以用https登陸芳誓,完事再重定向到http的頁(yè)面余舶,保證你頁(yè)面加載的流暢性
?2.JavaScript 加密后傳輸
3.瀏覽器插件內(nèi)進(jìn)行加密傳輸
4.Https 傳輸
前端加密的必要性?
1.HTTPS只保證通信過(guò)程的安全锹淌,不保證服務(wù)器上數(shù)據(jù)的隱秘性
2.在 HTTP 環(huán)境下匿值,無(wú)論如何都可能會(huì)被劫持流量,不管前端做不做加密都會(huì)被輕易成功登錄赂摆。這個(gè)時(shí)候保護(hù)密碼明文是否有意義挟憔?有人站隊(duì)前端加密無(wú)意義,考慮的是這個(gè)加密對(duì)本站的安全性沒(méi)有任何提升烟号;但如果你是從保護(hù)用戶的角度出發(fā)绊谭,用戶多站點(diǎn)共享密碼是現(xiàn)狀,你在沒(méi)法改變這一點(diǎn)的情況下汪拥,如果能夠保護(hù)密碼明文达传,至少降低了一點(diǎn)該用戶其他網(wǎng)站(即使是 HTTPS 的網(wǎng)站)被一鍋端的風(fēng)險(xiǎn)。這怎么能說(shuō)完全沒(méi)有意義迫筑?
鏈接:https://www.zhihu.com/question/25539382/answer/148941136:
前端加密的意義:
密碼在前端加密完全沒(méi)有意義趟大,對(duì)密碼系統(tǒng)的安全性不會(huì)有任何提高,反而會(huì)引發(fā)不必要的麻煩铣焊。
首先逊朽,做前端開(kāi)發(fā)的人需要知道,前端系統(tǒng)的控制權(quán)是完全在用戶手里的曲伊,也就是說(shuō)叽讳,前端做什么事情,用戶有完全的控制權(quán)坟募。
前端加密會(huì)帶來(lái)什么問(wèn)題:
1.有些人會(huì)認(rèn)為前端進(jìn)行了加密岛蚤,可以降低后臺(tái)的安全性需求,這種錯(cuò)誤的觀念會(huì)造成系統(tǒng)的安全漏洞懈糯。實(shí)際上涤妒,你不能對(duì)前端做任何的假設(shè),所有跟安全相關(guān)的技術(shù)赚哗,都必須應(yīng)用在后臺(tái)上她紫。
2.前端進(jìn)行加密會(huì)造成頁(yè)面需要js腳本才能運(yùn)行,那么假設(shè)你的系統(tǒng)需要兼容不能運(yùn)行js的客戶端屿储,就必須再設(shè)計(jì)一個(gè)使用原文的登錄接口贿讹。
3.由于前端是不是加密,所有安全機(jī)制都必須照常應(yīng)用够掠,所以為系統(tǒng)增加這樣的復(fù)雜性是完全沒(méi)必要的民褂,即使傳輸明文密碼,只要正確使用了HTTPS連接和服務(wù)器端安全的哈希算法,密碼系統(tǒng)都可以是很安全的赊堪。
轉(zhuǎn)自:https://www.zhihu.com/question/25539382/answer/31178019
總結(jié):看個(gè)人情況去實(shí)現(xiàn)前端加密吧面殖,一般公司都不要求
參考鏈接:html前端幾種加密方式的整理
注:以上內(nèi)容均為方便個(gè)人學(xué)習(xí)所做的總結(jié)筆記,詳情請(qǐng)看原鏈接哭廉,有好建議歡迎留言脊僚,后續(xù)繼續(xù)補(bǔ)充。群叶。