我们想用敏感的业务数据构建一个支持离线的 HTML5 SPA。最有可能使用 knockout.js!
但我们有非常棘手的安全问题。
加密呢?加密可能是可能的。但是适当的密钥也必须在(离线)客户端。如果您在客户端同时拥有算法和密钥,您还可以将其未加密地存储在本地存储中。
数据操作呢?使用 Firebug 等工具可以轻松操作 DOM 或 JavaScript 对象。
我真的很喜欢淘汰赛,但它不适合现实世界的商业应用程序。
有什么建议么?
我们想用敏感的业务数据构建一个支持离线的 HTML5 SPA。最有可能使用 knockout.js!
但我们有非常棘手的安全问题。
加密呢?加密可能是可能的。但是适当的密钥也必须在(离线)客户端。如果您在客户端同时拥有算法和密钥,您还可以将其未加密地存储在本地存储中。
数据操作呢?使用 Firebug 等工具可以轻松操作 DOM 或 JavaScript 对象。
我真的很喜欢淘汰赛,但它不适合现实世界的商业应用程序。
有什么建议么?
我不是安全专家,但是如果您使用 js 来加密/解密 client-sde,您是否不必在客户端同时存储公钥和私钥?有效地中和您的整个安全模型。
我认为,一旦您拥有数据客户端,就真的无法保证其完全安全,您必须信任浏览器以保持状态的私密性,但要真正做到 100% 安全,您要么必须放弃网络,要么承担后果通过在特定时间段后重定向到页面或破坏您的状态,将部分数据发送到客户端并依靠服务器端来填补空白。从某种意义上说,如果您不关闭选项卡,所有网页都可以离线使用。想想你的银行网站,页面上有你所有的账户活动,从安全的角度来看,我认为它和离线 js 没有区别。
回复:数据操作,这确实不是一个 KO “功能”,但 JS 允许您进行非常高级的数据操作,而像 linq.js 这样的库使事情变得更加容易。不完全是 sql,但仍然值得尊敬。
我认为 KO 绝对适合现实世界的业务应用程序。更广泛地说,浏览器/js/html 可能不适合您所追求的安全级别。
有点啰嗦,希望对你有帮助。