reactjs - 是否有一种安全的方法来在客户端存储登录凭据等数据?

标签 reactjs security local-storage client-side

我正在使用 React JS,我想将用户的登录凭据存储在客户端的浏览器上,这样他们就不必每次都输入电子邮件和密码。

如何在浏览器中安全地存储用户的登录凭据?

最佳答案

安全地定义。如果您的定义类似于“除了用户之外没有人可以使用凭据访问应用程序”,那么就忘记它吧。任何技术或工艺手段都无法实现这一点。该定义过于宽泛,如果攻击模型包括攻击者可以访问您的用户代理(浏览器)或对您的设备进行物理访问,那么解决方案很快就会变得毫无希望。

认为加密有帮助吗?您已使用某种 key 对有效负载进行了加密。现在你必须保护 key 。加密并不能解决你的问题。它只是将其转移到其他地方。所有通过模糊解决方案实现的安全性都使用这样的东西。

我们通常将传递 secret 的安全性定义为需要保护我们免受远程攻击者的侵害。有权访问线路并可以嗅探流量的人,可能有权访问您正在与之通信的某些远程计算机的人。这使得问题至少在某种程度上是可以解决的。它允许您使用配置良好的 cookie 或本地 Web 存储来将其用作缓存。

话虽如此 - 无论如何,存储凭据通常被认为是不好的做法。您可以存储您的刷新 token ,您可以存储您的 session ID,但您不应该将您的用户凭据存储在除密码管理器之外的任何其他位置。刷新 token 和 session ID 将自行过期,并且不会泄露有关用户的任何信息。

为了更好地了解设计解决方案时允许和禁止的内容,请查看 OWASP ASVS .

关于reactjs - 是否有一种安全的方法来在客户端存储登录凭据等数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73539394/

相关文章:

javascript - 对 JS 和 CSS 的请求改为给出 index.html

javascript - Material ui <Icon> 无法正确渲染

c# - wa=wsignupcleanup1.0 不会在依赖方注销用户

javascript - 根据值删除本地存储数组对象

javascript - Android Chrome window.onunload

local-storage - Electron 将旧应用的本地存储迁移到新应用

javascript - React Prop - 如果另一个 Prop 为空/空,则在 Prop 上设置 isRequired

javascript - state中的变量s怎么写?

security - 通过使用更长的密文获得额外的安全性

PHP strpos() 返回奇怪的结果