#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:
Ответ №3:
Еще одна идея, которая мне только что пришла в голову:
После того, как пользователь вошел в систему, создайте набор фреймов, в который вы вставляете фактические файлы содержимого. Таким образом, пользователь никогда не покидает страницу, и вы можете хранить все нужные данные в скрытом или небольшом фрейме.