在 SessionStorage 和 XSS React 中存储 JWT

Posted

技术标签:

【中文标题】在 SessionStorage 和 XSS React 中存储 JWT【英文标题】:Storing JWT in SessionStorage and XSS React 【发布时间】:2021-04-29 14:07:29 【问题描述】:

所以我想知道,因为 react 会转义 html,并且在使用普通输入/表单时实际上不允许 XSS,将 JWT 存储在 Storage 中是否安全,然后使用 Authorization HTTP 标头发送它,还是会将 jwt 存储在安全/HTTPonly/SameSite cookie 中更安全?

如果这是一个菜鸟问题,我很抱歉,但我已经阅读了很多关于这个主题的文章,但没有一个明确回答这个问题,我知道使用 cookie 对 XSS 更安全(仅使用 HTTP标志)但更容易受到 CSRF 攻击(使用相同的站点标志较少),但由于我们使用反应(不允许 XSS)并将其发送到授权标头(不允许 CSRF)不会那样更安全?

【问题讨论】:

【参考方案1】:

主要的一点是可以从 javascript 访问网络存储。由于这个原因,您的代码或您的某些依赖项可能包含会窃取您的令牌的安全漏洞。但是,old-school cookie 允许您配置 javascript 无法访问的数据(Http-Only)和仅在安全连接上存储的数据(安全)。

【讨论】:

以上是关于在 SessionStorage 和 XSS React 中存储 JWT的主要内容,如果未能解决你的问题,请参考以下文章

Web存储—sessionStorage存储

如何在浏览器中安全地存储 JWT?

PHP 防范xss攻击(转载)

XSS-Lab(XSS注入笔记1-16)

XSS-Lab(XSS注入笔记1-16)

$sessionStorage 以及如何在 AngularJs 中查看和使用 $sessionStorage