【发布时间】:2021-09-24 00:59:57
【问题描述】:
我是 JWT 的新手,我只是将它作为 JSON 中的 java 对象返回并制作了一些过滤器,因此它可以像使用 Spring Security 的 session_id 一样工作。
但是我不明白JWT是如何存储在客户端的,服务器响应后它去哪里了? 它是否会被所有浏览器自动存储在 cookie 中? 是否所有浏览器都支持 JWT?
非常感谢您的回答。
【问题讨论】:
-
本地存储是一种选择。
-
JWT 与浏览器支持无关,它只是服务器响应中返回的字符串。您可以将其保存在内存、localStorage 或仅限 http 的 cookie 中。恕我直言,你应该把它保存在 http-only cookie 中。
-
在本地存储中存储令牌等敏感信息存在巨大的安全风险。如果存在 XSS 漏洞,恶意行为者可能会窃取您的令牌。 OWASP 仍然始终建议不要在本地存储中存储任何敏感内容。 cheatsheetseries.owasp.org/cheatsheets/… 所以存储令牌有一个不好的建议。
标签: java spring spring-security jwt