我应该关心ReactJS中本地存储中的令牌可见性吗



我正在制作一个ReactJS应用程序,有一个基于令牌的身份验证(Laravel Sanctum(,它在用户登录时发布,我将其保存在浏览器的本地存储中。因此,我可以查找令牌,并在Postman这样的HTTP客户端中使用它。

另一件让我担心的事情是,我将会员信息存储在本地存储中,比如:

{
name: "John Doe",
privileges: [1, 2, 3, 4],
jobPositionID: 1,
departmentID: 5
}

它们不是敏感信息(除了代币(,但我是构建SPAs的新手,我对这一切的安全方面都很安全。

将会话令牌存储在web存储(sessionStorage/localStorage(中而不是Cookies是一个相对有争议的主题。本质上,提出的主要问题是,web存储没有为会话令牌提供任何针对XSS攻击的保护,而Cookies支持";httpOnly";阻止JavaScript访问cookie的标志,从而在一定程度上缓解了问题。

您应该考虑使用sessionStorage而不是localStorage,因为sessionStorage不会在浏览器会话中持久存在。

此外,我强烈建议阅读James Kettle关于在Web存储中存储代币的这篇精彩文章https://portswigger.net/research/web-storage-the-lesser-evil-for-session-tokens

最新更新