如何解决从 HTTPS Web 应用程序读取 HTTP IndexedDB 数据
我在我的应用上创建了数据并将其存储在 IndexedDB 中。
升级到HTTPS后,由于地址不同,数据消失了。现在我需要再次访问它。
我试图删除服务器上的证书,但这没有帮助。浏览器(iPad 上的 Brave)仍然强制使用 HTTPS,即使我停用了 HTTPS Brave Shield 选项。
我的主要问题是如何在访问域 DNS 设置、代码和浏览器的同时检索“不安全”数据。
解决方法
浏览器存储是原始范围的。 http://example.com 和 https://example.com 是不同的起源。他们无法访问彼此的数据 - 他们有不同的 localStorage、不同的 IndexedDB 数据库集等。
Origins 可以合作共享数据。过去,您可以让来自 https 源的页面在 http 源中包含一个 iframe,并且他们可以使用 postMessage()
进行通信以代理数据 - 即父框架向子框架发送消息说“给我你的data”,子框架验证请求来自预期的来源,从数据库中提取数据,并将其发送回父框架。
这在 Chrome 中仍然有效,但浏览器通常会转向在第三方 iframe 中对数据进行分区(因此顶级 B.com 窗口看到的存储与 B.com iframe 中看到的存储不同) A.com 窗口)。我相信非 iframe(即通过 window.open()
)可以在这里工作,尽管它会对用户造成更大的破坏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。