纯文本密码和";“记住我”;,node.js和js客户端
我试图了解node.js(带有passport.js)和client(纯javascript)web应用程序中的更多安全性。但我对网络编程非常陌生 我已经实现了一个纯文本密码和";“记住我”;,node.js和js客户端,node.js,security,passport.js,password-protection,Node.js,Security,Passport.js,Password Protection,我试图了解node.js(带有passport.js)和client(纯javascript)web应用程序中的更多安全性。但我对网络编程非常陌生 我已经实现了一个LocalStrategy,它还可以。要访问某些api,我必须以普通帐户登录,或者以管理员身份登录其他帐户 我正在使用浏览器身份验证进行测试(仍然没有“记住我”功能,因此每次我都必须重新键入密码),我正在使用curl进行测试: curl --cookie-jar jarfile --data "username=admin&p
LocalStrategy
,它还可以。要访问某些api,我必须以普通帐户登录,或者以管理员身份登录其他帐户
我正在使用浏览器身份验证进行测试(仍然没有“记住我”功能,因此每次我都必须重新键入密码),我正在使用curl进行测试:
curl --cookie-jar jarfile --data "username=admin&password=pass" http://localhost:5000/login
curl --cookie jarfile "http://localhost:5000/api/admin"
现在,按照“期望更糟”的范例,我希望受到一点保护,不受中间人攻击,所以我不想发送纯文本密码:我必须在浏览器(sha256)中加密密码,发送密码,并存储/比较哈希密码
curl
测试它?它必须总是不同的吗?用户必须在登录表单中插入它吗curl
进行测试。如果攻击者可以单独使用salt和hash登录(因此不需要知道原始密码),则salt和hash将变得不那么有用
2。。。“记住我”的事
通常,不是为每个请求发送凭证,而是使用一种“会话ID”类型的令牌。服务器维护将会话ID与用户记录关联的状态,从而“记住”用户已登录。在cookie中存储密码是很少见的
每次处理登录时,我都必须存储会话ID并将其发送到客户端?客户把它还给我
很多网站都是这样做的。我想还是有变化的余地的
curl--cookiejar文件--data“username=admin&password=pass”http://localhost:5000/login
将用户名和密码实际存储在cookie中,不是吗
它向服务器发送用户名和密码,服务器可以用它想要存储在cookie中的任何数据进行响应。如果服务器将用户名和密码作为cookie发回,则返回yes。如果它返回一个会话ID,那么否。为什么不使用SSL呢?好的,salt的东西更清楚了,谢谢。“记住我”这个词不太清楚。每次处理登录时,我都必须存储会话ID并将其发送到客户端?客户把它还给我?但是
curl--cookiejar文件--data“username=admin&password=pass”http://localhost:5000/login
将用户名和密码实际存储在cookie中,不是吗?