我需要开发一个可长期离线运行的Web应用程序。为了使它可行,我无法避免将敏感数据(个人数据,而不是您将仅存储散列数据的类型)保存在本地存储中。我接受不推荐这样做,但是我几乎没有选择要执行以下操作来保护数据:使用斯坦福javascript密码库和AES-256将所有内容都加密到本地存储中用户密码是加密密钥,未存储在设备上通过ssl从单个受信任的服务器提供所有内容(在线时)使用owasp antisamy项目验证往返服务器本地存储的所有数据在appcache的网络部分中,不使用*,而是仅列出与受信任服务器连接所需的URI通常,尝试应用OWASP XSS备忘单中建议的指南我很欣赏魔鬼在细节上的细节,并且知道人们对本地存储和基于JavaScript的安全性普遍持怀疑态度。任何人都可以评论是否存在:上述方法的根本缺陷?有什么办法可以解决此类缺陷?html 5应用程序必须长时间离线运行时,还有什么更好的方法来保护本地存储?谢谢你的帮助。
3 回答
皈依舞
TA贡献1851条经验 获得超3个赞
作为对该主题的探索,我有一个名为“使用Web密码学API保护TodoMVC”的演示文稿(视频,代码)。
它使用Web加密API通过密码保护应用程序并使用密码派生密钥进行加密,从而将加密的待办事项列表存储在localStorage中。如果忘记或丢失密码,将无法恢复。(免责声明-这是一个POC,不用于生产用途。)
在其他答案中,这仍然容易受到客户端计算机上安装的XSS或恶意软件的影响。但是,当数据存储在服务器上并且正在使用该应用程序时,任何敏感数据也将位于内存中。我建议脱机支持可能是引人注目的用例。
最后,对localStorage进行加密可能只会保护数据,使其免受对系统或其备份具有只读访问权限的攻击者的攻击。它为OWASP十大A6敏感数据公开项目增加了少量的纵深防御,并允许您回答“这些数据是否长期以明文形式存储?” 正确地。
添加回答
举报
0/150
提交
取消