【发布时间】:2014-10-11 00:34:39
【问题描述】:
我正在构建一个访问私有 API 的 Web 应用程序。我正在使用的 API 使用基于 TLS 的 HTTP 基本身份验证。我的客户已为 Web 应用请求“记住我”功能,以便用户可以在给定设备上保持持久身份验证。
我的快速和肮脏的解决方案是在验证后将Authorization 标头存储在localStorage 中。当然,如果可以完全访问用户的设备,那么任何值得称职的人都可以从 localStorage 复制 auth 标头并对其进行解码以检索用户的登录名/密码组合。
除了设备整体受损之外,将此类敏感数据存储在 localStorage 中是否还有其他安全隐患? localStorage 是否可以作为敏感数据(例如密码)的存储库?如果不是,您将如何在用户设备上保存这些数据而不是单个浏览器会话?
(我希望每个人都可以使用他或她的私钥......密码是如此 90 年代)
编辑在阅读HTML5 localStorage security 之后,显然在localStorage 中存储敏感数据通常是一个坏主意,但是在这种情况下,还有什么更好的选择来实现身份验证持久性?
【问题讨论】:
-
你可以考虑加密它;我在网上找到了解决方案。它工作得很好。这篇博文是在考虑 PhoneGap 的情况下编写的,但也适用于其他场景:onallthingsweb.wordpress.com/2013/12/02/…
-
@Brian Mains:如果运行时的 JS 可以解密它——那么它也可以被恶意用户解密。
-
这是 web 还是 phonegap?我们不知道环境,但是是的,或者当然这是一个问题......
标签: javascript html local-storage