Вы правы в том, что это не очень безопасно. localStorage
предназначен для более продвинутой замены (типа) файлов cookie. Он в основном предназначен для быстрого и постоянного хранения базовых пар ключ-значение, чтобы помочь в общем функционировании приложения / веб-сайта.
Задайте себе вопрос : Вы действительно хотите хранить конфиденциальную информацию о пользователях в файлах cookie ?
Ваш ответ будет НЕТ наиболее вероятно. То же самое с localStorage
. Однако к localStorage
может получить доступ только тот же источник, который его создал, что повышает уровень безопасности. Этот крошечный уровень безопасности может быть легко обойден любым человеком с единственным намерением украсть важную информацию. Это также может быть легко доступно с помощью межсайтовых сценариев, если недостаточно внимания уделено безопасности (CORS, среди прочего).
Как уже говорилось, многие приложения сегодня широко используют его для хранения информации для входа в систему, например токенов доступа и другой " частично-чувствительной " информации о пользователе. Однако вся эта информация подвергается перекрестной проверке некоторым сервером на сервере для проверки его подлинности.
Если уже есть система (встроенная в Firebase или созданная вами с помощью облачных функций) для проверки подлинности конкретного пользователя, полученного из localStorage
, а также того, что с использованием только этой информации никто может получить доступ к конфиденциальной информации пользователя, тогда это не проблема.
Не может ли кто-нибудь легко взломать это, вручную добавив ключ / значение?
Да, хотя и не так просто, как может показаться на первый взгляд, это действительно возможно.
Должен ли я добавить дополнительную проверку, чтобы гарантировать, что данные в sessionStorage - это данные, которые, как ожидается, будут? Как правильно справиться с этим?
В зависимости от того, какая это информация и насколько важна ее подлинность для вас, пользователя или функционирования вашего приложения, вы можете или не хотите устанавливать систему проверки на месте.
Возможное решение: Одним из возможных решений является использование какого-либо типа шифрования для хранения данных в localStorage
, например, AES, с ключами шифрования ( Ключи шифрования ) надежно хранятся на сервере или известны только пользователю.
ВАЖНО : Никогда не храните в высшей степени важную и личную информацию, такую как номера кредитных / дебетовых карт, пароли и т. Д., В localStorage
, независимо от того, насколько отчаянным вы получаете или насколько "безопасным" "Вы полагаете, что ваше приложение / сайт.