Как мне сохранить данные сеанса на локальном HTML-сайте?

#javascript #html #session

#javascript #HTML #сеанс

Вопрос:

Как мне сохранить данные сеанса между представлениями страниц на локальном (т.Е. file://) веб-сайте?

Я пытаюсь реализовать механизм входа в систему для веб-сайта с использованием JavaScript, который должен быть записан на диск и запущен оттуда.

Это исключает использование веб-сервера и, следовательно, HTTP. Это означает, что использование файлов cookie невозможно.

Похоже, что, хотя Firefox и IE поддерживают файлы cookie на локальных HTML-страницах, Chrome и Safari этого не делают — неудивительно, учитывая, что файлы cookie представляют собой конструкцию HTTP, а не HTML.

Сохранение данных в файле невозможно из-за изолированной среды JavaScript во время работы в браузерах.

HTML5 localstorage / sessionstorage не идеален, хотя бы из-за того, что я не уверен в среде, в которой он будет работать, и поддерживает ли он HTML5.

Итак, в принципе, как мне отслеживать, входит ли пользователь в систему на локальной странице без HTTP на HTML4?

Комментарии:

1. Возможно, вы захотите взглянуть на TiddlyWiki . К сожалению, не существует полностью кросс-браузерного, кросс-операционного способа делать то, что вы хотите.

2. Что вы пытаетесь сделать с «сеансом», когда он у вас есть? По всей вероятности, наиболее совместимым и простым в реализации решением было бы использовать параметры строки запроса для сохранения данных между вашими страницами.

3. Также довольно сложно представить, какой смысл требовать входа в «приложение», которое состоит только из HTML в локальных файлах, которые могут быть тривиально скомпрометированы быстрым переходом через текстовый редактор.

4. @Pointy Все это в требованиях! 😉 Это задание для веб-дизайна, и наличие реальной функциональности входа в систему приятно иметь. Безопасность в этом случае не является слишком высоким приоритетом, особенно учитывая обстоятельства.

5. @DavidBrainer-Banker Это довольно хорошая идея, на самом деле, спасибо!

Ответ №1:

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

Комментарии:

1. Довольно хорошее решение всей проблемы, о которой я не думал. Десять баллов Гриффиндору!

Ответ №2:

Вы можете использовать Flash?

Если вы можете, вам может повезти с Flash Cookies:

http://en.wikipedia.org/wiki/Local_Shared_Object

Ответ №3:

Еще одна идея, которая мне только что пришла в голову:

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