在 localStorage 中存储 HTTP Basic 授权标头是否存在任何安全问题?

Ben*_*old 5 html javascript local-storage

我正在构建一个访问私有 API 的 Web 应用程序。我正在使用的 API 使用基于 TLS 的 HTTP 基本身份验证。我的客户已请求 Web 应用程序的“记住我”功能,以便用户可以在给定设备上保持持久身份验证。

我的快速而肮脏的解决方案是AuthorizationlocalStorage验证标题后将其存储。当然,如果可以不受限制地访问用户的设备,那么任何人都可以从中复制 auth 标头localStorage并将其解码以检索用户的登录名/密码组合。

除了整个设备受到损害之外,将此类敏感数据存储在localStorage. 是否localStorage可以作为敏感数据(例如密码)的存储库?如果没有,您将如何在单个浏览器会话之外将此类数据持久保存在用户设备上?

(我希望每个人都可以使用他或她的私钥......密码都是90年代的)

编辑阅读HTML5 localStorage security 后,似乎很明显敏感数据的存储localStorage通常是一个坏主意,但在这种情况下,身份验证持久性有什么更好的选择?

A.L*_*A.L 4

我认为在用户端存储与登录名或密码相关的内容是一个坏主意。

但是,一旦用户登录,您就可以在用户端和数据库中存储随机字符串(例如随机哈希)。当用户回来后,​​可以比较两者,如果相同,则可以登录该用户。您可以要求用户输入密码以进行敏感操作(更改密码或登录等)。因此,即使哈希值被盗,也没有人能够获得该帐户的完全访问权限。

编辑:这个概念已经用于cookie。我从未用 localStorage 测试过它。