将localStorage数据从HTTP迁移到HTTPS

问题描述:

我制作了一个网络应用程序,用于存储持久性用户数据localStorage。我在我的网站上启用了HTTPS,我真的很想在HSTS上翻转开关。然而,据我所知,localStorage认为http://example.comhttps://example.com是不同的,所以如果现有的用户被重定向到我的网站的HTTPS版本,他们不能再访问他们的数据(虽然它仍然存在)。将localStorage数据从HTTP迁移到HTTPS

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

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

请注意,此web应用程序根本不与服务器交互;一切都发生在localStorage和客户端。

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

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

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

+0

嗯,是的。看起来我可以暂时关闭HSTS,隐藏HTTP用户的常用界面,并且有一个按钮让他们以这种方式填充HTTPS存储,然后再通过“更新书签”处理。谢谢! – rensa

+0

@rensa酷,希望它适合你。 – Mobius