据我所知,目前还没有在FirefoxOS中保存凭据的标准方法。没有比安卓更像AccountManager的东西了。因此,每个应用程序都必须自己保存凭证。这意味着您必须退回到本地存储或indexeddb之类的东西中。
我不确定是否有更好的方法来处理这个问题。我有一个应用程序,我想保存用户/密码,以便更容易在couchdb服务器上运行。
我目前的解决方案是创建一个只在本地使用的PouchDB数据库和一个可以与couchdb服务器同步的PouchDB数据库。此外,理论上,我可以将更改事件绑定到本地私有数据库,以侦听密码更改以使用不同的凭据进行重新身份验证。当cookie过期时,我可以重用凭据再次登录并重试失败的请求。
发布于 2015-01-09 22:42:05
localStorage和IndexedDB中的数据没有加密,因此如果设备被盗并分析文件,则可以检索凭据。
如果您不担心设备被盗和凭据被检索,那么将其存储在PouchDB中的计划听起来不错。Firefox上的Web应用程序被设计成沙箱,无法访问其他应用程序存储的数据。
但是,如果凭据是敏感的:
“足够安全”相对于存储的内容和已知的威胁级别。例如,如果您将密码存储在具有非零可能被窃取的设备上的高度敏感数据上,则“足够安全”与您存储的web应用程序的凭据非常不同,而用户认为该设备对该数据不存在被盗威胁。
如果服务非常敏感且威胁很大,我建议您不要在本地存储凭据,并放弃用户体验功能,并使用类似于双因素身份验证的方法。
如果数据是敏感的,并且必须在本地存储,则可以使用本地解锁代码或密码将加密的服务凭据存储在本地存储设施中。关于如何使用WebCrypto API进行此操作的演讲、幻灯片和代码示例可在https://timtaubert.de/blog/2014/10/keeping-secrets-with-javascript/上获得。
WebCrypto API是非常新的,所以请检查Gecko的版本中是否有该API的可用性,该版本是在您所针对的WebCrypto设备/版本上提供的。
https://stackoverflow.com/questions/27869326
复制相似问题