Security HTML5WebDB安全性

Security HTML5WebDB安全性,security,html,offlineapps,Security,Html,Offlineapps,我正在研究一个使用HTML5的离线web应用解决方案。 该功能是我所需要的一切,但存储的数据可以直接在浏览器中查询,因此完全不安全 是否有加密/隐藏的方法以确保数据的安全 谢谢, D.HTML5中的本地存储有两个问题- 一个网站正在读取另一个网站存储在用户浏览器中的脱机数据 直接查询网站脱机数据的最终用户 对于1,浏览器对localStorage(或safari提供的sqllite数据库支持)实施相同的域限制,因此其他网站将无法访问您存储的数据。但是,请记住,如果您的站点存在XSS漏洞,则有可能

我正在研究一个使用HTML5的离线web应用解决方案。 该功能是我所需要的一切,但存储的数据可以直接在浏览器中查询,因此完全不安全

是否有加密/隐藏的方法以确保数据的安全

谢谢,
D.

HTML5中的本地存储有两个问题-

  • 一个网站正在读取另一个网站存储在用户浏览器中的脱机数据
  • 直接查询网站脱机数据的最终用户
  • 对于1,浏览器对localStorage(或safari提供的sqllite数据库支持)实施相同的域限制,因此其他网站将无法访问您存储的数据。但是,请记住,如果您的站点存在XSS漏洞,则有可能窃取数据

    对于2,你无法阻止它。它就像一个cookie——用户可以选择查看/删除/修改它

    数据加密是可能的(请参阅),但毫无意义。您不能拥有单个全局密钥/密码,因为攻击者可以很容易地从javascript代码中找到密钥。使用用户输入的密码进行加密/解密是可能的,但客户端加密库还不够成熟或测试得不够好。可能有很多方法可以打破它


    所以,至少现在不要将敏感数据存储在localStorage中

    如果您将数据存储在用户的计算机上,用户始终可以读取数据,无论您对其进行了多少加密[假设您没有使用哈希…]


    敏感数据总是放在服务器端。

    您还可以看到HTML5 SecureStore Porposal作者的一篇文章

    请参见此处:成熟的加密库在客户端代码中使用是否安全(尽管它使用GWT)不一定。如果加密数据只能使用每次必须从服务器获取的密钥解密(即,它没有存储在JS或页面的任何位置),并且如果服务器仅在用户安全认证时提供密钥,然后在用户的合法会话之间,本地加密的数据是安全的。散列也不是加密。@drogon当然可以,但有总比没有好