0
我正在用express.js構建一個單頁應用程序作爲後端。目前我正在使用passport.js本地策略進行身份驗證,並使用bcrypt在db上保存加密密碼。在驗證過程中,用戶提供的密碼會再次加密,並與存儲在數據庫中的密碼相沖突。不過,我目前將密碼以明文形式發送到服務器,而且我明白這是一個非常糟糕且不安全的做法。要做到這一點正確,我理解我必須:使用passport.js進行密碼加密
在服務器上創建隨機字節並將其發送給客戶端
在客戶端上創建隨機字節
串連加密密碼和這兩組字節並加密所有這些字節
將加密對象和客戶端上生成的字節作爲明文發送回服務器
重現相同的加密對象的服務器上,並檢查是否有有效的認證
我可以bcrypt和客戶端上的一些隨機數發生器再次做到這一點,但我有強烈的感覺,我不應該自己實施這個。有一些與護照或我不知道的一些節點庫的集成?
這不會起作用。您絕對需要TLS(SSL)來保護從服務器到客戶端的通信。有更安全的選擇,但他們是很多工作。在短期內,你可以做的最好的事情就是打開TLS,而不是擺弄這樣瘋狂的東西。 – TheGreatContini