security - 在启用 SSL 的网站上使用 JWT 代替 Cookie

标签 security cookies jwt

我没有使用 cookie,而是使用 JWT token ,该 token 随每个请求一起发送。每个请求都是 POST 请求,因此 token 不会保存在浏览器的历史记录中。

这是一个单页应用程序。

token 看起来像:

{
    userId: 12345678,
    expires: <UNIX timestamp>,
    otherInfo: <something>
}

一切都受 SSL 保护。 当用户登录时,该 token 会在服务器上创建。

这是替换 cookie 的好方法还是您发现任何缺陷?

最佳答案

不,这不是一个好的解决方案。使用 cookie(带有 httpOnly 标志)进行跨请求持久性是可选的 - 这是安全存储 session 凭据的唯一方法,这样页面上的 JavaScript代码无法直接访问它。

这对于防止例如。通过确保脚本无法访问凭据,但它们仍然可以在对服务器的请求中使用,在 XSS 攻击中窃取 session 。

您对 JWT 的使用似乎也没有真正解决问题 - 为什么您不能仅使用现有 session 实现来使用 session cookie?这种东西正是它们的用途。

关于security - 在启用 SSL 的网站上使用 JWT 代替 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17728916/

相关文章:

java - 重定向到 https 的不同域

javascript - 在用户提交的 html 中禁用 Javascript

java - Spring:无法将 SameSite cookie 设置为 None

php - 无需登录的php安全投票系统

node.js - Node js jwt如何将 token 传递给其他路由以稍后检查登录的用户信息

kubernetes - 设置 Kubernetes 服务 token 的到期时间

php - 有没有任何系统可以检查 php 脚本是否安全?

google-chrome - Chrome 扩展程序 - 禁用阻止混合内容

php - 简单数据存储在哪里?例如 : wishlist

python - 无法从 JWT 导入 TokenObtainPairView、TokenRefreshView