前端賬號密碼登錄如何避免明文
A. web前端用戶的密碼提交時應當怎樣加密
密碼在前端加密完全沒有意義,對密碼系統的安全性不會有任何提高,反而會引發不必要的麻煩。首先,做前端開發的人需要知道,前端系統的控制權是完全在用戶手裡的,也就是說,前端做什麼事情,用戶有完全的控制權。假設如同 @陳軒所說,前端做過了md5,後台就不用做了,這個做法會有什麼後果?如果某一天,這個系統的資料庫泄露了,黑客就直接拿到了每個用戶的密碼md5值,但此時,由於黑客知道密碼是在前端進行哈希的,所以他不需要爆破出該md5對應的原文是什麼,而是直接修改客戶端向伺服器發出的請求,把密碼欄位換成資料庫中MD5就可以了,由於與資料庫中記錄一致,直接就會登錄成功。這跟直接存儲明文密碼沒有任何區別!!!所以不管前端是不是加密了密碼,後台使用安全的哈希演算法對內容再次轉換是非常有必要的。(MD5可不行,要用bcrypt,我之前回答過一個類似的:隨著顯卡性能的高速發展,目前的快速Hash演算法是否已經變得不夠安全了?)這個回答還有一個人贊同,希望大家別被錯誤答案誤導了。另外一個答案 @林鴻所說,在非安全HTTP連接上,可以防止原始密碼被竊聽。但問題在於由於你的登錄系統接受的哈希過的密碼,而不是原文,竊聽者根本不需要原始密碼,只要通過哈希結果就可以偽造請求登錄系統。這樣做只能防止被竊聽到原文的密碼被攻擊者用在社會學攻擊上,而不能改善該網站的安全性。所以不管前端是不是加密了密碼,使用HTTPS安全連接進行登錄都是非常有必要的。以上我說的兩點,合起來看就是:不管前端是否加密了密碼,都不能以此為假設,讓後端設計的安全等級下降,否則就會有嚴重的安全問題。實際上,前端進行密碼加密,可以看做幫助用戶多進行了一次原文的轉換,不管用了什麼加密演算法,算出來的結果都是密碼原文,你該如何保護用戶的原始密碼,就該如何保護此處的加密結果,因為對你的登錄系統來說,它們都是密碼原文。以上這些,說明了密碼加密是沒有什麼意義的,接下來,我要說明前端加密會帶來什麼問題。有些人會認為前端進行了加密,可以降低後台的安全性需求,這種錯誤的觀念會造成系統的安全漏洞。實際上,你不能對前端做任何的假設,所有跟安全相關的技術,都必須應用在後台上。前端進行加密會造成頁面需要js腳本才能運行,那麼假設你的系統需要兼容不能運行js的客戶端,就必須再設計一個使用原文的登錄介面。由於前端是不是加密,所有安全機制都必須照常應用,所以為系統增加這樣的復雜性是完全沒必要的,即使傳輸明文密碼,只要正確使用了HTTPS連接和伺服器端安全的哈希演算法,密碼系統都可以是很安全的。
B. 網路賬號和密碼太多 記不住怎麼辦用一樣的 又擔心安全性
如何保護我們的密碼安全
1.設定多套密碼:重要系統(比如網銀等金融相關的)和非重要系統(一些論壇、查閱為主的網頁)的密碼要分開,工作、生活、和理財賬戶使用不一樣的密碼,這樣能減少風險。
2.不要到處亂貼自己的密碼:到處貼密碼不僅方便了自己,也往往方便了陌生人。
3.不要明文存儲自己的密碼:明文密碼容易被外人獲取。
4.採取統一認證:將需要登錄的若干個系統,整合在一個地方。 比如能夠用QQ或微信登錄的地方,就不用再去另注冊一個用戶名和密碼了。
5.重要系統不要只用密碼認證:比如大家在登錄網上銀行的時候,可能還需要結合簡訊驗證碼、動態口令令牌、手機APP掃描等多種手段。
6.使用復雜的口令:首先密碼的長度要長,至少8位以上。其次,密碼不要純粹的使用數字或字母,而是要數字、字母、特殊字元夾雜著使用。
7.使用替代語:建議你嘗試使用諧音等替代語作為密碼。這樣只有你懂的代替語,別人即使看到了,也是一頭霧水。
8.使用屏保/鎖屏密碼:設置屏保/鎖屏等手勢密碼很重要,可以採用一些復雜但形象的方式,這樣可以給你的設備雙重的保障。
9.定期更換密碼:有時候密碼可能泄漏了我們卻不知道。面對這種情況,就要定期更換一個密碼。
10.密碼太多,建議使用密碼管理器工具:藉助一些專業的密碼管理軟體,把各個地方的密碼管理起來。當然,密碼管理器也有一個主密碼,你必須牢記主密碼。
C. Web前端密碼加密是否有意義
在前端對密碼做一次MD5,看起來是防止明文傳輸了,事實上只有一種情況下它可以提高用戶的安全性,那就是用戶在別的網站上也用和你的網站一樣的密碼。並且在任何情況下都提高不了你自己網站的安全性。前面說的傳輸過程、內存里、日誌里……這些地方沒有明文密碼,其實都只能保護用戶本身的利益,對於自身服務的安全性是沒有提高的。因為,既然傳輸過程不是加密的,那麼包隨便發,至於發一個abc123,還是發一個,對你的程序沒有任何的區別,這時候你的程序都是小綿羊。這個過程可以看做,你的用戶都用了32位字元串的密碼,如是而已。從事實意義上講,在所有網站上用同樣密碼的用戶非常多,所以可以勉勉強強的說,這是有一丁丁點的意義的。但即使在前端做了簽名,因為hash暴露了,也還是很容易被撞庫。但是,對安全性沒有提高,就不做了嗎?當然要做,因為要應付審計。