我正在学习udemy上的vue课程,并查看了一些在线资源,它们似乎都有一个过程,我将用户名和密码发送到我的api,它会返回我的jwt访问令牌。然后,令牌被存储在状态中(使用vuex(,为了支持页面刷新(并保持用户登录(,它还将jwt令牌保存到本地存储中。
由于我不使用cookie,我的理解是我不必担心csrf。
OWASP建议不要在本地存储中存储令牌(我认为主要是由于存在xss漏洞(。authO网站(https://auth0.com/docs/security/store-tokens)说我应该存储在内存中(如我对vuex所做的(。
我如何遵循不使用本地存储的建议,并确保如果用户刷新页面,他们仍然登录(没有cookie(,或者这是不可能的。
首先,我不是安全专家。如果你的公司有大约一名安全官员,你可能也想在那里讨论此事。
OWASP表示不应将敏感信息存储在localStorage(或WebSQL/IndexDb(中。但我认为你应该平衡你的选择。如果用户每次都需要登录是因为一些非常敏感的信息,那么您可以使用sessionStorage或将令牌保存在内存中。否则,请使用localStorage。举个例子:点击F12并查看SO正在使用的内容:LocalStorage。
在Security StackExchange 上也有一个很好的答案