我在Node.js上使用Passport-local(在Mongodb中保存用户信息)和Angular.js作为客户端。这个过程很简单。 但是这里有3个安全问题:
当我在客户端登录时,用户和真实的json文件 密码被发送到服务器。
登录后,令牌将保存在Web Explorer的本地 存储,可以在将来查看,复制和使用。
salt处理的jwt令牌与Mongodb Users Collection中的用户名一起保存,可以看到并移动到另一个 服务器(以便我们可以使用相同的用户名和密码 另一台登录并获取新令牌的服务器)
有人想进一步讨论这些吗?有关如何解决它们的任何想法,并降低网站的风险?如何使用https?
答案 0 :(得分:1)
如果您只想在其他服务器实例上验证令牌,则无需在用户架构中存储令牌。因为,jwt.verify()
为您提供了检查令牌是否有效的功能。如果令牌有效,那么您将获得在创建令牌时使用的用户信息。如果您在数据库中找到该用户,那么您的令牌可以使用有效用户,否则不行。
创建令牌时,主要是根据您的服务器需求设置expiresIn
,这样即使您的API安全受到损害,也不会长时间可用