【问题标题】:Read HTTP IndexedDB data from HTTPS web app从 HTTPS Web 应用程序读取 HTTP IndexedDB 数据
【发布时间】:2021-07-17 12:52:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: https indexeddb brave brave-browser


    【解决方案1】:

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

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

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

    【讨论】:

    • 您好,感谢您的详细回答。我最终迫使我的网站返回 http 来检索数据并且没有回头看 SO,因为我得出的结论是这是不可能的。无论如何,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多