使用reactjs将jwt存储在localStorage中是否安全?

我目前正在使用reactjs构建一个单页面应用程序。我读到许多不使用localStorage的原因是由于XSS漏洞。由于React避开了所有用户输入,现在使用localStorage是否安全?

回答:

在大多数现代单页应用程序中,我们确实必须将令牌存储在客户端的某个位置(最常见的用例-在页面刷新后使用户保持登录状态)。

共有2个可用选项:Web存储(会话存储,本地存储)和客户端cookie。

Tom Abbott很好地总结了JWT

sessionStorage和localStorage的安全性:

Web存储(localStorage /

sessionStorage)可通过同一域上的JavaScript访问。这意味着您站点上运行的所有JavaScript都可以访问Web存储,因此,它

。简而言之,XSS是攻击者可以注入将在您的页面上运行的JavaScript的一种漏洞。基本的XSS攻击尝试通过表单输入注入JavaScript,攻击者将JavaScript

<script>alert('You are Hacked');</script>放入表单中以查看它是否由浏览器运行并且可以被其他用户查看。

为了防止XSS,常见的响应是对所有不受信任的数据进行转义和编码。React(主要是)为您做到了!这是关于React负责多少XSS漏洞保护的精彩讨论。

但这并不涵盖所有可能的漏洞!另一个潜在的威胁是 。

再次是汤姆:

现代网络应用程序包括用于A /

B测试,渠道/市场分析和广告的第三方JavaScript库。我们使用Bower等软件包管理器将其他人的代码导入我们的应用程序。

如果只破坏了您使用的一个脚本怎么办?恶意JavaScript可以嵌入到页面中,并且Web存储受到损害。

这可能就是为什么许多组织建议不要在Web存储中存储任何有价值的东西或信任任何信息的原因。这包括会话标识符和令牌。

因此,我的结论是,Web存储作为一种存储机制,

。读取并使用Web存储的任何人都必须进行尽职调查,以确保他们始终通过HTTPS发送JWT,而不通过HTTP发送JWT。

以上是 使用reactjs将jwt存储在localStorage中是否安全? 的全部内容, 来源链接: utcz.com/qa/405029.html

回到顶部