SPA + 存储 JWT + REST API 不接受 cookie 身份验证

问题描述 投票:0回答:1

每个人都在谈论不要将 jwt 存储在本地存储中以确保在线安全。 但事实上,在 REST API 不支持基于 cookie 的身份验证的情况下,我使用 SPA + Rest API 集成的项目都没有使用“安全最佳实践”来实现。

  1. 大多数 Rest API(内部 + 外部)仅使用不记名令牌进行身份验证 jwt,而不是来自 cookie 的值。
  2. 在 SPA 中将 jwt 设置为 http only cookie 本质上意味着无法检索 cookie 中的 jwt 并通过 SPA 将其传递到不记名令牌中。

我从这里看到了两种解决方案。要么 Rest API 接受 cookie,要么我们在传递给 REST API 之前有另一个 SPA 后端代理。

这两者都需要投入额外的精力,特别是当 REST API 不受您控制时,大多数时候最终都是在本地存储中设置 jwt。

还有其他方法吗????如果你们中的任何人在使用 SPA + JWT 和 REST API 时真正遵循存储在 cookie 而不是本地存储中的安全最佳实践,我很高兴。

rest cookies jwt single-page-application csrf
1个回答
0
投票

许多安全最佳实践都是权衡的。不遵循某种做法(例如不使用 HttpOnly cookie)并不一定意味着存在安全漏洞,但它可以意味着如果您有一个单独的更实际的安全问题,攻击者将更容易利用。

将您的代币存储在 LocalStorage 中并不是世界末日,但最好避免它。

但是,如果安全性是您的首要任务,那么还有更好的解决方案。不要直接从浏览器与第三方 REST api 对话,而是在同一域上创建一个中间服务,该服务代表您发出请求,并拥有自己的基于会话/cookie 的身份验证系统。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.