Javascript 如何使用cookie进行身份验证(安全性)

Javascript 如何使用cookie进行身份验证(安全性),javascript,node.js,express,authentication,Javascript,Node.js,Express,Authentication,在Express中,为了“记住我”身份验证,我创建了一个带有user\u id的JWT令牌。令牌的加密版本(基于秘密)将保存到客户端的cookie中。如果不存在会话,我们将查找cookie。如果找到,为了检查身份验证,服务器将从cookie中解密JWT令牌,我们将根据令牌中的id创建一个新会话 我的问题:这是否意味着如果有人将cookie复制粘贴到他们的计算机上,他们就可以假装是我?从安全角度看,我做错了什么?是否有更好的方法来实现“记住我”?是的,这是正确的。会话令牌/cookie应该是私有的

在Express中,为了“记住我”身份验证,我创建了一个带有
user\u id
的JWT令牌。令牌的加密版本(基于秘密)将保存到客户端的cookie中。如果不存在会话,我们将查找cookie。如果找到,为了检查身份验证,服务器将从cookie中解密JWT令牌,我们将根据令牌中的id创建一个新会话


我的问题:这是否意味着如果有人将cookie复制粘贴到他们的计算机上,他们就可以假装是我?从安全角度看,我做错了什么?是否有更好的方法来实现“记住我”?

是的,这是正确的。会话令牌/cookie应该是私有的。如果其他人掌握了它,他们可以冒充你。所以你应该对这些令牌有一个有限的使用期限,只通过HTTPS发送它们,而不要在共享计算机上使用“记住我”。谢谢!同时加密cookie,这样用户就不能编辑cookie并更改cookie中包含的发布日期,这是一种好的做法吗?我想是的,但是我有疑问,因为你会得到两层加密:首先是JWT令牌,然后是cookie。通常,JWT令牌和会话cookie都不能被用户更改(前者是有签名的,后者是一个随机数,必须与服务器端数据库匹配)。但无论是(还是任何附加加密)都不能防止有人复制这些令牌。他们必须保持隐私。只是一个旁注-人们还可以将浏览器指纹添加到组合中,并检查使用的令牌是否由给定的浏览器设置。太好了,我现在明白了!令牌过期日期已加密,无法更改。当然,饼干需要保密。如果你想加上is作为答案,我会接受的。是的,这是正确的。会话令牌/cookie应该是私有的。如果其他人掌握了它,他们可以冒充你。所以你应该对这些令牌有一个有限的使用期限,只通过HTTPS发送它们,而不要在共享计算机上使用“记住我”。谢谢!同时加密cookie,这样用户就不能编辑cookie并更改cookie中包含的发布日期,这是一种好的做法吗?我想是的,但是我有疑问,因为你会得到两层加密:首先是JWT令牌,然后是cookie。通常,JWT令牌和会话cookie都不能被用户更改(前者是有签名的,后者是一个随机数,必须与服务器端数据库匹配)。但无论是(还是任何附加加密)都不能防止有人复制这些令牌。他们必须保持隐私。只是一个旁注-人们还可以将浏览器指纹添加到组合中,并检查使用的令牌是否由给定的浏览器设置。太好了,我现在明白了!令牌过期日期已加密,无法更改。当然,饼干需要保密。如果你想加上is作为答案,我会接受的。