从 HTTPS 网络应用读取 HTTP IndexedDB 数据

Read HTTP IndexedDB data from HTTPS web app

我在我的应用程序上创建了数据并将其存储在 IndexedDB 中。

升级到HTTPS后,由于地址不同数据消失了。现在我需要再次访问它。

我试图删除服务器上的证书,但这没有帮助。浏览器(Brave on iPad)仍然强制使用 HTTPS,即使我停用了 HTTPS Brave Shield 选项。

我的主要问题是如何检索“不安全”数据,同时可以访问域 DNS 设置、代码和浏览器。

浏览器存储是原始范围的。 http://example.com and https://example.com 是不同的来源。他们无法访问彼此的数据 - 他们有不同的 localStorage、不同的 IndexedDB 数据库集等。

Origins可以合作共享数据。过去,您可以让来自 https 源的页面在 http 源中包含 iframe,并且它们可以使用 postMessage() 进行通信以代理数据 - 即父框架向子框架发送消息说“给我你的data" 和子框架验证请求来自预期来源,从数据库中提取数据,并将其发送回父框架。

这在 Chrome 中仍然有效,但浏览器通常转向在第三方 iframe 中分区数据(因此顶级 B.com window 看到的存储不同比在 A.com window 内的 B.com iframe 中看到的存储)。我相信非 iframe(即通过 window.open())可以在这里工作,尽管它会对用户造成更大的干扰。