本地IndexedDB安全性(数据库名称唯一性)

Local IndexedDB security (DB name uniqueness)

本文关键字:唯一性 数据库 IndexedDB 安全性 本地      更新时间:2023-09-26

PouchDB在后台使用IndexedDB。您可以在创建数据库时指定数据库名称;如果不是URL,文档会提到it will create a local database using whatever backend is present (i.e. IndexedDB, WebSQL, or LevelDB).

我找不到任何关于这个名字唯一性的信息。如果有两个web应用程序使用相同的名称创建IndexedDB,会发生什么情况?

是这样的吗:

  • 数据库链接到域,因此您只需要在单个域上的多个web应用程序(例如游戏)中使用唯一的数据库名称,或者
  • 数据库名称是全局的,所有数据库都必须具有唯一的名称(类似于Google Play要求唯一应用名称空间的方式)

我计划在一个域上托管的多个游戏中使用它,但我也想知道Is是否应该在DB名称中加上某个域标识符的前缀,这样我就不会意外地与其他站点的其他IndexedDB实例发生冲突。

WebSQL和IndexedDB数据库都链接到主机。因此,foo.combar.com将具有不同的数据库,即使它们使用相同的名称。这是标准的网络安全;Cookie和LocalStorage也会发生同样的情况。

来自"跨目录攻击"部分:

共享一个主机名的不同作者,例如在geocities.com上托管内容的用户,都共享一组数据库。

显然,数据库是按域共享的,但不是按主机共享的。