0

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

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

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

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

4

1 回答 1

1

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

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

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

于 2021-07-21T21:30:19.700 回答