[英]Node.js, socket.io and mongojs - Login form with socket.io
我目前正在使用mongojs
在node.js
上創建一個小型聊天應用程序,我有一個mongo用戶集合,其中包含username, password and name
字段。 該應用程序使用socket.io
實時發送數據,然后對用戶進行身份驗證,如果身份驗證正確,則讓他使用該應用程序。
但是,我不想以純文本形式發送密碼,是否可以在客戶端對密碼進行加密? 還是更好的方法呢? 我已經考慮過在單獨的頁面上使用它,但是我需要在單個頁面上使用它。
這是我的客戶端代碼:
function loginUser(){
console.log("Login User");
username = $('#login-username').val();
password = $('#login-password').val();
//VALIDATIONS
socket.emit('auth-user', {"username": username, "password": password});
return false;
}
我強烈建議您不要對密碼進行客戶端加密。
如果在發送密碼之前進行哈希處理,則必須按原樣存儲其密碼的哈希(或者您可以再次對其進行哈希處理,這同樣沒有用)。 但是,除非您設置了一個公用/專用密鑰系統以在服務器端對其解密,然后使用單獨的哈希算法重新對其進行哈希處理,否則您將獲得絕對零附加收益。
我不知道任何可以加密客戶端的主要站點,因為公認的規范是使用HTTPS,因為它允許通過在SSL / TCP協議上發送來對所有傳出數據進行加密。
重要的是要注意,socket.io不是不安全的,就像您似乎正在假設的那樣。 它遵循基本的互聯網協議,並且與不使用https的其他任何站點的登錄名一樣安全。 只是要考慮的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.