我在我的应用程序上创建了数据并将其存储在IndexedDB中。
升级到HTTPS后,由于地址不同,数据消失了。现在我需要再次访问它。
我试图删除服务器上的证书,但这没有帮助。即使我停用了 HTTPS Brave Shield选项,浏览器(iPad 上的 Brave)仍然强制使用 HTTPS。
我的主要问题是如何在访问域 DNS 设置、代码和浏览器的同时检索“不安全”数据。
我在我的应用程序上创建了数据并将其存储在IndexedDB中。
升级到HTTPS后,由于地址不同,数据消失了。现在我需要再次访问它。
我试图删除服务器上的证书,但这没有帮助。即使我停用了 HTTPS Brave Shield选项,浏览器(iPad 上的 Brave)仍然强制使用 HTTPS。
我的主要问题是如何在访问域 DNS 设置、代码和浏览器的同时检索“不安全”数据。
浏览器存储是原始范围的。http://example.com和https://example.com是不同的来源。他们无法访问彼此的数据——他们有不同的 localStorage、不同的 IndexedDB 数据库集等。
Origins 可以合作共享数据。过去,您可以让来自 https 来源的页面在 http 来源中包含一个 iframe,它们可以用来postMessage()
进行通信以代理数据 - 即父框架向子框架发送消息说“给我你的数据”和子框架frame 验证请求是否来自预期的来源,将数据从数据库中拉出,并将其发送回父级。
这在 Chrome 中仍然有效,但浏览器通常会转向在第三方 iframe 中分区数据(因此顶级 B.com 窗口看到的存储不同于 A.com 内的 B.com iframe 中看到的存储窗户)。我相信非 iframe(即 via window.open()
)可以在这里工作,尽管它会对用户造成更大的破坏。