Прекратить совместное использование localStorage между серверами за обратным прокси-сервером (пропуски одного источника для всех)

287
Matt Muggeridge

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

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 методы, которые отключают совместное использование этих объектов?

0

1 ответ на вопрос

0
kicken

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

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

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

Спасибо, цыпленок, это тоже подтверждает мои подозрения. Я закончил тем, что модифицировал ключи `localStorage` с помощью команды замены обратного прокси. Итак, теперь ключи зависят от сервера. Например, ключ, называемый `foo`, теперь заменяется обратным прокси-сервером и становится` server1_foo` и `server2_foo`. Это решило проблему совместного использования. Matt Muggeridge 5 лет назад 0

Похожие вопросы