我没有使用cookie,而是使用JWT令牌,该令牌随每个请求一起发送。每个请求都是POST请求,因此令牌不会保存在浏览器的历史记录中。
这是一个单页应用。
令牌如下:
{
userId: 12345678,
expires: <UNIX timestamp>,
otherInfo: <something>
}
一切都是SSL安全的。 当用户登录时,将在服务器上创建令牌。
这是替换cookie的好方法还是看到任何缺陷?
答案 0 :(得分:1)
不,这不是一个好的解决方案。使用cookie(带有httpOnly
标志)进行跨请求持久性是不可选 - 它是安全存储会话凭证的唯一方式,以这种方式在页面上JavaScript代码无法直接访问它。
这对预防例如至关重要。会话窃取XSS攻击,确保脚本无法访问凭据,但它们仍可用于对服务器的请求。
您对JWT的使用似乎并没有真正解决问题 - 为什么您只能使用现有会话实施来使用会话cookie?这种事情正是他们所做的。