Рассмотрим два внутренних сервера:

https://server1.example.com
https://server2.example.com

При непосредственном доступе к этим серверам они, естественно, имеют независимые объекты localStorage , поскольку их источники различны; в этом случае имена хостов различаются.

Когда я размещаю эти серверы за обратным прокси-сервером, доступ к ним осуществляется следующим образом:

https://proxy.example.com/server1
https://proxy.example.com/server2

Чтобы немного усложнить картину, у меня есть интерфейсная страница на proxy:

https://proxy.example.com

На этой интерфейсной странице перечислены серверы как горячие ссылки, использующие HTML, аналогичные следующим:

<a href="https://proxy.example.com/server1/" target="_blank">Server1</a>
<a href="https://proxy.example.com/server2/" target="_blank">Server2</a>

Теперь все proxy серверы, server1 и server2 проходят один и тот same-origin , поскольку каждый из них имеет origin=https://proxy.example.com:443 . Следовательно, объект localStorage является общим для них, и это совместное использование сбивает с толку приложения на server1 и server2 .

Есть ли способ отключить совместное использование localStorage между proxy , server1 и server2 в этой конфигурации?

Если нет, есть ли в Javascript методы, которые отключают совместное использование этих объектов?

1 ответ1

0

Насколько мне известно, нет никакого сегмента браузера localStorage, основанного на чем-либо, кроме источника, и нет способа изменить источник, кроме изменения URL.

Если ваша цель - сегментировать сохраненные данные по сайту, чтобы избежать конфликтов, вам придется делать это вручную, назначая каждому сайту какой-то уникальный ключ, под которым он может хранить свои данные.

Если ваша цель состоит в том, чтобы не допустить чтения / записи server1 в хранилище server2, это будет невозможно без изменения источника сервера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .