【发布时间】:2021-08-11 18:17:52
【问题描述】:
我刚刚读到这篇文章
https://hasura.io/blog/best-practices-of-using-jwt-with-graphql/
总而言之,他们建议将 JWT 访问令牌存储在内存中(例如作为 JavaScript 中的变量),并将刷新令牌存储在 HTTP-Only Cookie 中。
他们说:
但是通过刷新令牌间接保持我们的会话,我们 防止我们使用 JWT 会遇到的直接 CSRF 漏洞 令牌。
但它是否将 Refresh Token 存储在 HTTP-Only cookie 中仍然容易受到 CSRF 攻击?例如, evilsite.com 可以向 /refreshtoken 端点发出请求以获取新的 JWT 访问令牌。我对 HTTP-Only cookie 的理解是无法从 JavaScript 读取 cookie,但每当发出 HTTP 请求时,它都会自动发送,就像 evilsite.com 所做的那样。 (如果我错了,请纠正我)。
【问题讨论】:
标签: cookies jwt refresh-token