2014-10-23 3 views
1

PouchDB는 내부적으로 IndexedDB를 사용합니다. 데이터베이스 이름을 만들 때 지정합니다. URL이 아닌 경우 the docs은 해당 내용을 언급합니다. it will create a local database using whatever backend is present (i.e. IndexedDB, WebSQL, or LevelDB).로컬 IndexedDB 보안 (DB 이름 고유성)

이름의 고유성에 대한 정보는 찾을 수 없습니다. 같은 이름의 IndexedDB를 만드는 두 개의 웹 응용 프로그램이 있다면 어떻게됩니까? (. 예를 들어 게임)

    당신은 단지 하나의 도메인에 여러 웹 응용 프로그램 내에서 고유 데이터베이스 이름이 필요하므로 DB가 도메인에 연결되어
  • , 또는
  • DB를 이름 :

    그것을 것입니다 모든 데이터베이스의 이름은 고유해야합니다 (Google Play에서 고유 한 앱 네임 스페이스가 필요한 방식과 유사).

단일 도메인에서 호스팅되는 여러 게임에서이 기능을 사용할 계획이지만, 내가 DB 이름에 어떤 도메인 식별자를 접두사로 붙이면 안된다. 실수로 다른 사이트의 다른 IndexedDB 인스턴스와 충돌합니다.

답변

1

WebSQL 및 IndexedDB 데이터베이스는 모두 호스트에 연결됩니다. 따라서 foo.combar.com은 동일한 이름을 부여하더라도 다른 데이터베이스를 사용합니다. 그것은 표준 웹 보안입니다. 쿠키와 LocalStorage에서도 마찬가지입니다. Cross Directory Attacks 섹션에서

: geocities.com에 콘텐츠를 호스팅 예를 들어 사용자를 위해, 하나의 호스트 이름을 공유

다른 저자, 모든 데이터베이스를 공유 한 세트.

명백하게 데이터베이스는 호스트별로 공유되는 것이 아니라 도메인별로 공유됩니다.

+0

나는 그렇게 생각했으나 이것을 증명할 수있는 근거를 찾지 못했습니다. 본질적으로 이것을 말하는 몇몇 문서/스펙을 가르쳐 주시겠습니까? – ashes999

+0

http://www.w3.org/TR/IndexedDB/ http://www.w3.org/TR/webdatabase/ – nlawson

+0

상당히 긴 문서입니다. 나는 그 중 일부를 읽었지만, 당신이 참조한 부분을 찾지 못했습니다. 답안에서 발췌 한 관련 발췌문을 참조하고 인용 할 수 있습니까? – ashes999