Задать вопрос

Один localStorage на все поддомены. Нельзя, но может всё-таки можно?

Имеется многоязычный проект. Каждому языку соответствует поддомен, а также есть специальные поддомены для статики и особых версий (примерно как на Википедии):

en.example.com<br/>
ru.example.com<br/>
...<br/>
static.example.com<br/>
m.example.com<br/>
fb.example.com<br/>
vk.example.com<br/>
...<br/>



У пользователей во время работы будут накапливаться данные, которые в принципе не нужны на серверной стороне, плюс этих данных может быть больше, чем на 4 KБ, т. е. куки использовать не желательно.

HTML 5 localStorage, казалось бы, подходит идеально, но есть одно большое «но»: данные, сохранённые для одного поддомена, не видны на всех остальных поддоменах согласно спецификации из соображений безопасности.


Не могли бы вы, уважаемые хабровчане, посоветовать, каким образом можно осуществить местное хранение данных в таком случае? Сталкивался ли кто-то ещё с подобной проблемой, успешно решив её? Может быть, стоит каким-либо образом использовать iFrame, хранить localStorage там и «общаться» с ним? Есть ли какие-то другие подходы в решении этой задачи?
  • Вопрос задан
  • 6758 просмотров
Подписаться 3 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 4
SowingSadness
@SowingSadness
web-разработчик
Можно использовать 1 извращенный способ.
Использовать postMssage, который будет транслировать запросы localStorage на специальной странице, аля localStorage.example.com :)

Кстати, можно поиграться с попытками достучаться на прямую к localStorage ifram'a ведь, домен 2рого уровня страниц будет одинаковый. Не помню, просто, пзволят ли политики безопасности.
Ответ написан
Комментировать
burivuh
@burivuh
Могу предложить такой костыль:
сделайте невидимый iframe, загрузите в него страницу с какого-нибудь общего домена, например localStorage.yoursite.com, реализуйте в скриптах на этой странице функции для работы с хранилищем
взаимодействие с этим ифреймом организуйте на основе хака с хэшем (на его же основе сделан так называемый XHRIFrameProxy)
Ответ написан
ertaquo
@ertaquo
Попробуйте использовать скрипт из этой статьи: Evercookie — самые устойчивые куки
Ответ написан
Комментировать
Zitrix
@Zitrix
globalStorage, если бы он поддерживался хромом :(
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽