【发布时间】:2015-09-01 01:14:13
【问题描述】:
在使用 NodeJS 和(例如)AngularJS 的 SPA 上存储 JSON Web 令牌以进行身份验证的最佳位置是什么?
到目前为止我得到了什么:
可能的地方:
- HTML5 网络存储 (localStorage/sessionStorage)
- Cookie
网络存储 (localStorage/sessionStorage) 可通过同一域上的 JavaScript 访问。这意味着您网站上运行的任何 JavaScript 都可以访问网络存储,因此很容易受到跨站点脚本 (XSS) 攻击。
localStorage 有不同的过期时间,sessionStorage 只能在创建它的窗口打开时访问。 localStorage 会一直持续到您将其删除或用户将其删除。
Cookies 与 HttpOnly cookie 标志一起使用时,无法通过 JavaScript 访问,并且不受 XSS 影响。但是,cookie 容易受到跨站请求伪造 (CSRF) 的攻击。
那么存储 JWT 最安全的方式是什么
【问题讨论】:
-
我在一个相关问题上提供了一个answer,该问题可能包含有关所有可能性的有用附加信息。
标签: angularjs node.js authentication cookies jwt