【发布时间】:2018-11-06 08:10:43
【问题描述】:
在单页应用中:
我想使用 httpOnly/Secure cookie 来验证 Bearer 令牌没有从本地存储中被盗。
换句话说,cookie 和不记名令牌必须在被认为有效之前被出示并交叉检查。
例如:
用户使用用户名/密码成功登录。
创建了一个 Jwt Bearer 令牌,其中包含 12345 的会话 ID。
此外,cookie 被格式化为 jwt 并签名并包含会话 ID 12345 的声明。
现在,当使用令牌和 cookie 发出 ajax 请求时,会比较会话 ID。如果它们匹配,则请求得到满足。
这安全吗?还是应该在 cookie 或 token 上加密 Session Id?
【问题讨论】:
-
“安全”不是布尔值。
-
@Flimzy,我不太关注你。有没有更好的方式来表达这个问题?
-
没有什么是“安全的”或“不安全的”。它不是一个布尔值。某些东西在一定程度上是安全的,并且对于特定的攻击向量。
-
如果你能负担得起将令牌放在 httpOnly cookie 中,为什么还要在 localStorage 中使用它?
-
因为单页应用需要token中的信息才能运行。它无法读取 httpOnly cookie。通过两者,应用程序获取数据,但 httpOnly cookie 确认它是有效的。
标签: security jwt session-cookies