将localStorage数据从HTTP迁移到HTTPS

时间:2017-10-01 04:20:57

标签: javascript https local-storage hsts

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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