每页 localStorage?

Per-page localStorage?

在HTML5中,是否可以创建仅供单个网页访问的本地存储?

我目前正在尝试编写独立的单页应用程序的可能性,以及用户是否可以自己托管它们,例如在他们的 Dropbox 上(它具有 public 文件的一些基本网络托管功能)或 运行 localhost 上的最小网络服务器。

然后,用户可能会在其本地服务器/Dropbox 中启动来自各种来源的此类 HTML 应用程序,或者被要求打开来自其他用户 Dropbox 的应用程序。

由于所有这些页面都来自同一个来源(目前 https://dl.dropboxusercontent.com),它们将共享一个 localStorage,如果名称冲突和泄漏,这可能会干扰功能数据;例如。这样的页面可能希望在 localStorage 中存储用于访问用户 Dropbox 帐户的身份验证令牌,但是任何其他此类 "App" 都可以窃取该令牌。


我不得不在这里说,我是 HTML5 的新手,并且很可能会在这里扩展预期的使用范围,因为由于基本的网络安全概念,我将 运行 限制在限制范围内就像同源策略一样——尤其是当通过 file:// uri 从本地驱动器打开 HTML 文件时。

核心目的是允许用户以跨移动和桌面设备的方式托管他们自己的自定义应用程序,方法是利用他们现有的网络服务订阅来进行托管和数据同步,而不是将他们的数据移动到另一个服务.

如前所述here,localStorage 仅受协议、域和端口限制。

因此,即使在每个 localStorage 键前加上唯一的页面标记(即 localStorage.set('page1.' + key)),也无法避免其他页面获取这些信息,因此没有简单的方法可以避免信息泄露。

您可以使用唯一页面标识符(甚至 url)作为存储数据加密的密钥。理论上。