使用 SPA 刷新令牌

信息安全 http jwt
2021-09-02 04:12:50

我们一直在与 SPA 合作,它们POST通过 API 的凭据接收 JWT(访问令牌)和刷新令牌。令牌存储在会话存储或本地存储中,具体取决于“让我登录”。

查看https://auth0.com/docs/api-auth/which-oauth-flow-to-use,他们建议(通过 OAuth 2.0,当然,但我认为相同的概念)SPA 不应该被持有者令牌信任. 相反,我们应该通过(在他们的情况下)隐藏 iframe 并直接获取访问令牌来进行静默身份验证。

基本上,我的问题是,为什么这里的建议是“SPA 不能使用刷新令牌”在他们使用 iframe 的示例中,我猜想为他们的 OAuth 登录域存储了一个 cookie - 这本质上如何更好?

我还可能缺少什么?

编辑:我是否认为 XSS 在使用会话存储时更有可能,CSRF 在使用 cookie 时更有可能,所以答案是,如果你有很高的信心其中一个(XSS/CSRF)受到保护,那么相关联的存储(会话/cookies)是要走的路吗?

1个回答

如果您满足以下条件,则安全级别相同:

  • 有 HTTP 标头:X-Frame-Options: SAMEORIGIN

  • 标头:X-XSS-保护:1;模式=块

  • 带有 HSTS 标头的 SSL

  • 如果您使用 cookie 来保护它,请使用 CSRF 令牌。

他们说 iframe 只是为了向用户隐藏刷新,但如果完成上述操作,安全性将保持在与没有它相同的级别。