将 localStorage 数据从 HTTP 迁移到 HTTPS

Migrate localStorage data from HTTP to HTTPS

我制作了一个网络应用程序,用于在 localStorage 中存储持久的用户数据。我在我的网站上启用了 HTTPS,我真的很想打开 HSTS 的开关。然而,据我所知,localStorage 认为 http://example.com and https://example.com 是不同的,因此如果现有用户被重定向到我网站的 HTTPS 版本,他们将无法再访问他们的数据(尽管它仍然存在).

从长远来看,我想构建此应用程序的新版本,为数据存储提供更多选项。但在短期内,我能想到的就是有一个过渡期,要求 http 版本的用户通过两个版本都可以访问的其他(未知)机制迁移他们的数据。

这是对我的选择的公平评估吗? https://example.com to access the localStorage of http://example.com有办法吗?如果没有,我是否可以在任何地方放置用户数据,以便两个版本都可以访问它但其他站点不能?或者我应该让他们下载他们的数据并重新上传吗?从用户体验或(用户)安全的角度来看,这并不理想。

请注意,此网络应用根本不与服务器交互;一切都发生在 localStorage 和客户身上。

不幸的是,似乎没有任何方法可以直接从 https 站点检索安全性较低的站点 http 副本的 localStorage 内容。 reference

我看到的解决方法是使用 iframe 在不安全站点上加载特殊页面,类似于 this answer。一般理论是在 iframe 中包含使用 postMessage 和 localStorage 数据将消息发送回安全页面的代码。

不幸的是,这种方法不允许您完全禁用 http,否则您的 iframed http 副本将无法加载。