2013-07-18 34 views
5

而不是使用cookie我使用JWT令牌随每个请求一起发送。每个请求都是一个POST请求,以便该令牌不会保存在浏览器的历史记录中。在启用SSL的站点上使用JWT而不是Cookie

这是一个单页的应用程序。

令牌的样子:

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

一切都是SSL安全。 用户登录时,会在服务器上创建令牌。

这是替换cookie的好方法还是你看到任何缺陷?

+0

即使对于GET请求,为什么浏览器历史记录会成为单页面应用程序的问题? AJAX请求不会落入浏览器历史记录中。不过最好将标记放入“授权”标头中,因此,如果您使用GET,它不会意外出现在访问日志中。 –

回答

1

不,这不是一个好的解决方案。使用cookie(具有httpOnly标志)用于交叉请求持久性是而不是可选 - 这是安全存储会话凭据的唯一方式,使页面JavaScript代码无法直接访问它。

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

您对JWT的使用似乎并不能真正解决问题,为什么您不能仅仅使用现有的会话实现来使用会话cookie?这种事情正是他们所为。

相关问题