从 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()
)可以在这里工作,尽管它会对用户造成更大的干扰。
我在我的应用程序上创建了数据并将其存储在 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()
)可以在这里工作,尽管它会对用户造成更大的干扰。