gpt4 book ai didi

IndexedDB 和同源策略

转载 作者:行者123 更新时间:2023-12-04 12:48:15 24 4
gpt4 key购买 nike

以下摘自Mozilla的网站:

Like most web storage solutions, IndexedDB follows a same-origin policy. So while you can access stored data within a domain, you cannot access data across different domains.

我了解从 Javascript 访问不同域时的同源策略。但我不明白这如何适用于 IndexedDB。我认为 IndexedDB 只是一个数据库,你可以在其中存储任何你想要的东西。 IndexedDB 是如何知道域的任何信息的,如果知道它为什么还要关心呢?即使我设法从不同的域检索数据(这是可能的),我仍然可以将该数据存储在数据库中。那么域与此有什么关系呢?

我正在构建一个在 Electron 中运行并可以访问来自多个域的数据的单页网络应用程序。我会将这些数据存储在 IndexedDB 数据库中。大概我只会有一个数据库。只是不清楚同源策略在这种情况下会有什么作用。

如果我的网络应用程序不导航到 url,而仅使用 XMLHttpRequest 从后端服务检索数据,那么从技术上讲,不存在域。

最佳答案

本例中的 SOP 指的是访问 IndexedDB 的脚本的来源。来自 example.com/foo.js 的脚本可以访问 example.com 的 IndexedDB,但来自 evil.com/bar.js 的脚本无法访问它。更重要的是,对于您访问的每个域,都有一个不同的 IndexedDB 实例、本地存储、 session 存储等。

此外,这并不是说不能将数据从 evil.com 写入到 example.com 的数据库中。这是关于来自 evil.com 的脚本访问 来自 example.com 的数据库。所以浏览器不会用它的来源来标记数据,而是用脚本来标记数据。这是有道理的,因为问题出在恶意脚本上,而不是数据本身。

关于IndexedDB 和同源策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42440568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com