Как проверить изоляцию двух веб-приложений на IPFS-шлюзе

Один шлюз может обслуживать приложения разных издателей. Перед использованием браузерного хранилища проверьте, какой origin получает каждое приложение по конечному URL.

Сравните адреса без обращения к шлюзу

Выполните JavaScript в консоли браузера. Условные метки root-a и root-b обозначают разные CID, подходящие для DNS. Пример только разбирает адреса. Первая строка результата будет true, вторая — false. При сравнении origin браузер учитывает схему, имя узла и порт. Путь после имени узла в это сравнение не входит.

const pathURL = cid => new URL("https://gateway.example/ipfs/" + cid + "/")
const hostURL = cid => new URL("https://" + cid + ".ipfs.gateway.example/")
console.log(pathURL("root-a").origin === pathURL("root-b").origin)
console.log(hostURL("root-a").origin === hostURL("root-b").origin)

Посмотрите адрес после перенаправлений

Для проверки развёрнутого сайта подставьте реальные CIDv1 в кодировке для DNS, откройте оба приложения и сравните location.origin. Некоторые шлюзы перенаправляют запрос с пути на поддомен. Разные origin разделяют такие хранилища, как localStorage. Для cookie отдельно проверьте область действия, особенно если задан общий родительский домен.

docs.ipfs.tech IPFS gateways