jwt身份验证:cookie vs header

时间:2015-06-26 08:53:36

标签: javascript rest security web jwt

有很多文章围绕讨论在客户端存储JWT的最佳位置。简而言之,他们都是关于 -

  • 仅限Http的安全cookie - 没有XSS,但是对XSRF来说很脆弱

  • 标题(保存在本地存储或DOM中) - 没有XSRF,但是对XSS很可疑

我认为我想出了一个非常精明的解决方案,但是,由于我在安全方面完成了noob,我不确定它是否真的很精明或愚蠢。

那么,如果要拆分JWT并将其中的一部分保存在cookie中,另一部分放在标题中呢?会不会破碎?

这也应该解决'退出'问题 - 删除标题部分会使浏览器无法登录。

最好的问候,尤金。

1 个答案:

答案 0 :(得分:12)

JWT需要保持在一起,否则签名验证将无效。

保护XSRF非常简单,只需要另一个cookie。

从不使用本地存储来存储身份验证信息,它不遵循与Cookie相同的域和原始规则。在这里阅读更多内容:

https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Storage_APIs

免责声明:我在Stormpath工作,我们有一个托管用户管理解决方案,我们在安全上花了很多时间。我写了两篇博文,讨论JWT和前端认证:

Token Based Authentication for Single Page Apps (SPAs)

https://stormpath.com/blog/build-secure-user-interfaces-using-jwts/

希望这有帮助!