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

时间:2014-10-23 13:52:28

标签: javascript html5 pouchdb

PouchDB使用了IndexedDB。您在创建数据库名称时指定它;如果不是网址,the docs提及it will create a local database using whatever backend is present (i.e. IndexedDB, WebSQL, or LevelDB).

我找不到的是有关名称唯一性的任何信息。如果有两个Web应用程序创建具有相同名称的IndexedDB,会发生什么?

是吗:

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

我计划在单个域上托管的多个游戏中使用它,但我也想知道是否应该在数据库名称中添加一些域标识符,这样我就不会意外地与其他站点的其他IndexedDB实例发生冲突。 / p>

1 个答案:

答案 0 :(得分:1)

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

来自Cross Directory Attacks部分:

  

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

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