Можно ли хранить идентификатор сеанса в localStorage?

безопасно ли хранить ID пользователя в сессии localStorage? На w3.org сайт говорят

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

значит ли это, что localStorage может использоваться для конфиденциальных данных?

2 ответов


Это зависит от того, что вы подразумеваете под "безопасно"?

localStorage примерно так же безопасен, как файл cookie с ограниченным доступом. С веб-страниц, он может быть доступен только страниц из того же домена. Миллионы сайтов хранят идентификаторы сеансов в файлах cookies, которые имеют примерно те же ограничения безопасности, что и localStorage.

вне веб-страниц ни localStorage, ни cookies не защищены от доступа других программ или даже веб-инструментов отладки, работающих на том же компьютер.


httpOnly cookies обеспечивают уровень защиты XSS, который localStorage не дает:

  • httpOnly cookies недоступны из [потенциально вредоносных] JS.
  • localStorage и доступ из JS.

идентификаторы сеанса должны храниться в httpOnly secure печенье.