【发布时间】:2015-01-09 06:12:25
【问题描述】:
我试图在我的 node.js(使用 passport.js)和客户端(纯 JavaScript)Web 应用程序中了解更多的安全性。但我对网络编程很陌生。
我已经实现了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),发送并存储/比较哈希密码。
- 我不明白的是 salt 的东西。什么用的比较多
图案?在服务器中生成并发送到登录页面?如何用
curl测试它?它必须总是不同的吗?用户必须在登录表单中插入它? - “记住我”这件事怎么样?我真的不明白这一点:我是否必须在浏览器中存储一个带有用户名、加密密码和盐的 cookie?为什么“记住我”的实现在服务器端?不应该在客户端吗?
抱歉,我没有在网上找到任何可以用 node.js 和 passport.js、纯 javascript 客户端和 curl 测试(我非常关心使用 curls 进行测试)来清楚解释这些概念的内容。
【问题讨论】:
-
为什么不改用 SSL?
标签: node.js security passport.js password-protection