Мой основной вопрос — каковы возможные методы удаления window.localStorage
данные (не window.sessionStorage
) из браузера клиента. Один из известных мне способов — перейти на консоль клиента и набрать localStorage.clear()
,
Я создаю веб-приложение, которое использует HTML-локальное хранилище для замены сессий PHP и файлов cookie.
У меня есть веб-приложение, которое делает следующее:
Мои вопросы:
1) Какие проблемы безопасности
2) Есть ли лучший способ? Я не хочу использовать сеансы или куки.
Я создаю веб-приложение, которое использует HTML-локальное хранилище для замены сессий PHP и файлов cookie.
Локальное хранилище — это решение, направленное на замену ни того, ни другого. Локальное хранилище предназначено для хранения данных на стороне клиента. Файлы cookie предназначены для идентификации клиентов на уровне HTTP. Сеансы PHP предназначены для хранения данных на стороне сервера, обычно с ключом cookie.
Пароль на самом деле является строкой GUID.
GUID на самом деле не случайны. В зависимости от используемого алгоритма частью GUID является MAC-адрес генерирующего сервера. Далее также используется метка времени. Вы остались с небольшой энтропией. Смотрите также: Являются ли GUID хорошими паролями?
Затем скрипт JavaScript отправляет в качестве пост-запроса с адресом электронной почты и паролем на сервер.
…Каждый раз, когда пользователь запрашивает страницу, запрос будет содержать данные локального хранилища пользователя (адрес электронной почты и пароль)
При отправке пароля по проводам, как это происходит, вы даете злоумышленникам предсказуемую и частую передачу учетных данных. Как минимум, это должно быть сделано по безопасному каналу (HTTPS). В этот момент ваша безопасность не так уж и страшна.
Хитрость в том, чтобы другие не могли получить доступ к локальному хранилищу. Будьте в курсе того, какие скрипты вы включаете на своей странице. (Если вы включите некоторые аналитические или рекламные сценарии, например, он будет иметь доступ к этим данным локального хранилища.)
И снова, используйте HTTPS, чтобы люди не возились с транзитной страницей.
Лучшим способом было бы использовать сеансы с вращающимся идентификатором сессии. «Пароль» становится идентификатором сеанса и меняется для каждого запроса. Это гораздо безопаснее, чем ожидать от пользователя слабого пароля, который редко меняется. Фактическое имя пользователя и пароль передаются по сети только один раз.
Других решений пока нет …