security - FirefoxOS 是否足够安全,可以将密码存储在 indexeddb 或 localstorage 中?

标签 security authentication credentials firefox-os

据我所知,目前还没有在 FirefoxOS 中保存凭据的标准方法。没有像android那样的AccountManager这样的东西。因此每个应用程序都必须自行保存凭据。这意味着您必须回退到 localstorage 或 indexeddb 之类的东西。

不知道是否有更好的方法来处理这个问题。我有一个应用程序,我想保存用户/密码,以便更轻松地在 couchdb 服务器上重新进行身份验证。

<小时/>

我当前的解决方案是创建一个仅在本地使用的 PouchDB 数据库和一个可以与 couchdb 服务器同步的 PouchDB 数据库。另外,理论上我可以将更改事件绑定(bind)到本地私有(private)数据库以监听密码更改以使用不同的凭据重新进行身份验证。当 cookie 过期时,我可以重新使用凭据来再次登录并重试失败的请求。

最佳答案

localStorage 和 IndexedDB 中的数据未加密,因此如果设备被盗并且文件被分析,则可以检索凭据。

如果您不担心设备被盗和凭据被检索,那么您在 PouchDB 中存储的计划听起来不错。 Firefox OS 上的 Web 应用程序经过设计而被沙箱化,因此它们无法访问其他应用程序存储的数据。

但是,如果凭据敏感:

“足够安全”与所存储的内容和已知的威胁级别相关。例如,如果您在设备上存储高度敏感数据的密码,而该数据被盗的可能性不为零,那么“足够安全”与您存储 Web 应用程序的凭据时“足够安全”有很大不同。用户认为设备上的数据不敏感,不会有被盗的威胁。

如果服务非常敏感且威胁很高,我建议您根本不要在本地存储凭据,并放弃用户体验功能,使用双因素身份验证之类的功能。

如果数据敏感且必须存储在本地,您可以使用本地解锁代码或密码将服务凭证加密存储在本地存储设施中。有关如何使用 WebCrypto API 执行此操作的演讲、幻灯片和代码示例,请访问:https://timtaubert.de/blog/2014/10/keeping-secrets-with-javascript/ .

WebCrypto API 相当新,因此请检查该 API 在您目标的 Firefox OS 设备/版本上附带的 Gecko 版本上的可用性。

关于security - FirefoxOS 是否足够安全,可以将密码存储在 indexeddb 或 localstorage 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869326/

相关文章:

security - SVN的authz和文件夹重命名

objective-c - 如何在 Objective C 中混淆静态密码?

c++ - 此 strncpy 存在哪些安全问题?

python - 我应该将 API 凭证的环境变量放在哪里?

c# - 如何在 XP 和 7 之间使用不同的浏览器或 CredentialCache.DefaultCredentials 代理

asp.net - 隐藏字段与 View 状态

javascript - 使用 JavaScript 客户端的 SignalR 身份验证

java - SharedPreferences 不想存储我的代码

node.js - Passport 登录和持久 session

windows - 在命令行验证域凭据