在那篇教程中,
将其保存在 cookie 中怎么样?
在客户端创建cookie来保存JWT也容易出现XSS。如果它可以在客户端上从应用程序外部的 Javascript 读取 - 它可能会被盗。您可能认为 HttpOnly cookie(由服务器而不是客户端创建)会有帮助,但 cookie 很容易受到 CSRF 攻击。需要注意的是,HttpOnly 和合理的 CORS 策略无法防止 CSRF 表单提交攻击,并且使用 cookie 需要适当的 CSRF 缓解策略。
因此作者将 JWT 保存在内存中(变量)。
但我在这篇文章中读到,javascript 可以读取其他变量。
当攻击者可以在网站上运行 Javascript 时,就会发生 XSS。如果存在XSS漏洞,那么攻击者可以读取/设置cookie,通过读取javascript变量将用户的详细信息传输到攻击者服务器。那么,将 JWT 保存在内存中如何比存储在本地存储或 cookie 中更安全呢?
我错过了什么吗?(我可能是因为我已经搜索过这个但我在互联网上什么也没得到。)
将 JWT 存储在内存中仍然会使它们容易受到 XSS 的攻击,但这使得检索令牌变得更加困难。
假设您在代码中使用恶意库。如果您将令牌存储在 localStorage 中,则库可能会愚弄其中的所有内容并将其发送到其他地方。此攻击适用于在 localStorage 中存储令牌的任何网站。如果您将令牌存储在内存中,攻击者需要专门针对您的应用程序,因为需要额外的实现细节。
我不建议将令牌存储在内存中,而是使用 HttpOnly cookie,它可以保护令牌免受 XSS 攻击。现在您只需要担心 CSRF,这可以在现代浏览器中通过简单地将 cookie 的 SameSite 属性设置为 Lax 来实现,或者您还可以使用 CSRF 令牌。
| 归档时间: |
|
| 查看次数: |
1768 次 |
| 最近记录: |