Перенос данных localStorage с HTTP на HTTPS

Я сделал веб-приложение, которое хранит постоянные пользовательские данные в localStorage. Я включил HTTPS на своем сайте и очень хотел бы включить HSTS. Однако, насколько я могу судить, localStorage считает http://example.com и https://example.com, чтобы существующие пользователи перенаправлялись на HTTPS-версию моего сайта, они больше не могли получить доступ к своим данным ( хотя он и сейчас есть).

В долгосрочной перспективе я хочу создать новую версию этого приложения, предлагающую больше возможностей для хранения данных. Но в краткосрочной перспективе все, о чем я могу думать, — это переходный период, когда пользователей http-версии просят перенести свои данные с помощью какого-то другого (неизвестного) механизма, к которому могут получить доступ обе версии.

Является ли это справедливой оценкой моих возможностей? Есть ли способ для https://example.com получить доступ к localStorage из http://example.com? Если нет, могу ли я где-нибудь поместить пользовательские данные, чтобы обе версии могли получить к ним доступ, а другие сайты - нет? Или я должен попросить их загрузить свои данные и повторно загрузить их? Это не кажется идеальным с точки зрения UX или (пользовательской) безопасности.

Обратите внимание, что это веб-приложение вообще не взаимодействует с сервером; все происходит с localStorage и клиентом.


person jimjamslam    schedule 01.10.2017    source источник


Ответы (1)


К сожалению, похоже, нет никакого способа напрямую получить содержимое localStorage для менее защищенной http-копии сайта с сайта https. ссылка

Обходной путь, который я видел, заключается в использовании iframe, загружающего специальную страницу на небезопасном сайте, подобно этот ответ. Общая теория заключается в том, чтобы иметь код в iframe, который отправляет сообщения с использованием postMessage с данными localStorage обратно на защищенную страницу.

К сожалению, этот подход не позволяет вам полностью отключить http, потому что в противном случае ваша http-копия iframe не загрузится.

person Mobius    schedule 01.10.2017
comment
Мммм, да. Кажется, я мог бы на некоторое время отключить HSTS, скрыть обычный интерфейс для пользователей HTTP и иметь кнопку для заполнения хранилища HTTPS таким образом, прежде чем переходить с помощью сделки типа «обновите свои закладки». Спасибо! - person jimjamslam; 01.10.2017