【问题标题】:Migrate localStorage data from HTTP to HTTPS将 localStorage 数据从 HTTP 迁移到 HTTPS
【发布时间】:2017-10-01 04:20:57
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript https local-storage hsts


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗯,是的。似乎我可以暂时关闭 HSTS,隐藏 HTTP 用户的常用界面,并有一个按钮让他们以这种方式填充 HTTPS 存储,然后再通过“更新书签”之类的交易进行传输。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2022-01-01
    • 1970-01-01
    • 2013-10-21
    相关资源
    最近更新 更多