Можно ли хранить идентификатор сеанса в localStorage?
Безопасно ли хранить идентификатор сеанса пользователя в localStorage? На сайте w3.org они говорят
Пользовательские агенты должны возбуждать исключение SECURITY_ERR всякий раз, когда любой из члены объекта хранения, первоначально возвращенного localStorage доступ к атрибутам осуществляется с помощью сценариев, эффективный источник script не является то же самое, что и начало документа объекта Window, на котором к нему был добавлен атрибут localStorage.
Значит ли это, что localStorage может использоваться для конфиденциальных данных?
Ответы
Ответ 1
Это зависит от того, что вы подразумеваете под "безопасно"?
localStorage примерно такой же безопасный, как cookie с ограниченным доступом. С веб-страниц к нему можно обращаться только по страницам из одного домена. Zillions of sites хранят идентификаторы сеанса в файлах cookie, которые имеют примерно одинаковые ограничения безопасности, такие как localStorage.
Вне веб-страниц ни localStorage, ни файлы cookie вообще не защищены от доступа другими программами или даже инструментами веб-отладки, запущенными на одном компьютере.
Ответ 2
httpOnly
cookie обеспечивают уровень защиты XSS, который localStorage
не предоставляет:
-
httpOnly
cookie недоступен из [потенциально злонамеренного] JS.
-
localStorage
доступен из JS.
Идентификаторы сеансов должны храниться в httpOnly
secure
куках.