将JWT存储在cookie和本地存储中有什么好处?

时间:2019-01-29 00:54:29

标签: node.js authentication jwt xss csrf

我正在尝试使用express为node.js api编写身份验证系统。我注意到,如果要使用JWT进行身份验证令牌,则有两个选择...

1。)将令牌存储在cookie中,并添加CSRF保护。
2.)让客户端在Auth Header中发送令牌并添加XSS保护。

我的问题是,将auth令牌存储在cookie中,并使客户端将其发送到Auth Header中进行身份验证是否有好处?这样,如果出于某种原因CSRF保护失败,则如果标头中没有身份验证令牌,请求将失败。同样,如果XSS保护失败,该请求仍将需要cookie中的auth令牌。我想我的想法是,这将提供更多保护,而失败的唯一方法是通过成功的XSS攻击,然后是成功的CSRF攻击。

后续问题:CSRF令牌是否是针对CSRF攻击的全面证明保护技术?

1 个答案:

答案 0 :(得分:0)

首先,我建议您首先回答this。希望我能在这里解决您对CSRF和XSS的疑问,以及我们为什么以及如何使用cookie。

第二,将cookie与localstorage一起使用的方法很好。我看到的唯一问题是localstorage无法跨子域使用。如果您使用cookie并将cookie域设置为example.com(将示例替换为您的组织域),它将在所有子域中有效。因此,由您的授权服务器认证的用户可以无缝登录到app1.example.com和app2.example.com。您将无法使用本地存储来做到这一点。