Как проверить изоляцию двух веб-приложений на 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 отдельно проверьте область действия, особенно если задан общий родительский домен.