Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js、socket.io和mongojs-带有socket.io的登录表单_Javascript_Node.js_Mongodb_Socket.io - Fatal编程技术网

Javascript Node.js、socket.io和mongojs-带有socket.io的登录表单

Javascript Node.js、socket.io和mongojs-带有socket.io的登录表单,javascript,node.js,mongodb,socket.io,Javascript,Node.js,Mongodb,Socket.io,我目前正在使用mongojs在node.js上创建一个小型聊天应用程序,我有一个带有用户名、密码和姓名字段的mongo用户集合。应用程序使用socket.io实时发送数据,然后对用户进行身份验证,如果身份验证正确,允许用户使用应用程序 但是,我不想以明文形式发送密码,有没有办法在客户端加密密码?或者有更好的方法吗?我曾想过在单独的页面上使用它,但我需要在单个页面上使用它 这是我的客户端代码: function loginUser(){ console.log("Login User");

我目前正在使用
mongojs
node.js
上创建一个小型聊天应用程序,我有一个带有
用户名、密码和姓名
字段的mongo用户集合。应用程序使用
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;
}

嗯。。。很好的问题。我以前从未将socket.io用于身份验证

但是,对于passport,它似乎是Socket IO处理基于身份验证的首选方式。我找不到任何关于passport是否加密数据的信息,但至少它正在使用POST呼叫


最后,我强烈建议不要对密码进行客户端加密

如果在发送密码之前进行哈希运算,则必须按原样存储其密码的哈希(或者可以再次进行哈希运算,这同样没有用)。但是,除非您设置一个公钥/私钥系统来在服务器端对它们进行解密,然后使用单独的哈希算法对它们进行重新哈希,否则您将绝对没有任何额外的好处

我不知道有哪个主要的站点对客户端进行加密,因为公认的标准是使用HTTPS,因为它允许通过SSL/TCP协议对所有传出数据进行加密


需要注意的是,socket.io并不是不安全的,正如您所假设的那样;它遵循基本的互联网协议,将与任何其他不使用https的站点登录一样安全。只是考虑一下。< / P>谢谢你的信息!是的,我实际上假设socket io没有那么安全,我只是想给这个小网站增加更多的安全性。谢谢!我要检查护照,它看起来像是一个有趣的图书馆。我发誓我写了关于PGP加密。。。我不知道为什么它被剪掉了。。。