使用cookie的节点用户身份验证

时间:2014-12-22 23:04:10

标签: node.js authentication session-cookies passport.js

我打算写一个负责用户身份验证的服务器api。根据我的限制知识和理解,当用户使用用户名和密码登录时,将创建会话,并且使用用户名的auth cookie将保存到cookie中。当用户请求下一页时,cookie中的用户信息将发送给服务器,服务器将识别它。所以我的问题是如果另一个人手动复制现有的cookie信息并在另一台计算机的浏览器中创建相同的cookie会怎么样?它会跳过登录阶段吗?任何人都可以详细解释如何防止这个细节吗?感谢

1 个答案:

答案 0 :(得分:1)

是的,它很可能会跳过登录阶段。你描述的是一种会话劫持或cookie劫持的形式。在未加密的连接上使用cookie(即HTTP而不是HTTPS)并不是一个安全的解决方案,因为任何人都可以窃取并使用相同的cookie,这通常足以获得完全访问权限而无需进行身份验证。 (它可能 - 虽然它通常不是 - 更难以利用,但并非不可能。)

很快就没有理由不使用HTTPS(详见my answer to other question)。

除了确保没有人能够读取cookie(使用HTTPS和HttpOnly)之外,您还必须确保没有人可以猜出会话ID(例如,它不能是连续的或小的数字)或类似的东西)。

另见: