【发布时间】:2020-06-19 08:15:27
【问题描述】:
我正在关注这个tutorial on JWT using GraphQL。
在那个教程中,
将其保存在 cookie 中怎么样?
在客户端创建 cookie 来保存 JWT 也会很容易出现 跨站脚本。如果它可以从您之外的 Javascript 在客户端上读取 应用程序 - 它可以被盗。您可能会认为 HttpOnly cookie(由 服务器而不是客户端)会有所帮助,但 cookie 是 容易受到 CSRF 攻击。重要的是要注意 HttpOnly 和 明智的 CORS 策略无法阻止 CSRF 表单提交攻击和 使用 cookie 需要适当的 CSRF 缓解策略。
所以作者将 JWT 保存在内存中(变量)。
但我在SO post 上读到 javascript 可以读取其他变量。
当攻击者可以在网站上运行 Javascript 时,就会发生 XSS。如果存在 XSS 漏洞,则攻击者可以读取/设置 cookie,通过读取 javascript 变量将用户的详细信息传输到攻击者服务器。那么,如何将 JWT 保存在内存中比存储在 Local Storage 或 cookie 中更安全?
我错过了什么吗? (我可能是因为我已经搜索过这个,但我在互联网上一无所获。)
【问题讨论】: