Есть две проблемы с локальным хранилищем в HTML5 -
- Один веб-сайт читает автономные данные, которые другой веб-сайт хранит в браузере пользователя
- Конечный пользователь, напрямую запрашивающий данные вашего сайта в автономном режиме
Для 1 браузеры применяют те же ограничения домена к localStorage (или к поддержке базы данных sqllite, которую имеет safari), поэтому другие веб-сайты не будут иметь доступа к данным, которые вы храните. Однако помните, что если на вашем сайте есть уязвимости XSS, вы сможете украсть данные.
Для 2 вы не можете предотвратить это. Это как cookie - пользователь может выбрать его просмотр / удаление / изменение.
Возможно шифрование данных (см. http://farfarfar.com/scripts/encrypt/),, но бессмысленно. У вас не может быть единого глобального ключа / пароля - потому что злоумышленник может легко определить ключ из кода JavaScript. Используя пароль, введенный пользователем, для шифрования / decrypt возможен, но библиотеки шифрования на стороне клиента не являются зрелыми или недостаточно хорошо протестированы. Вероятно, существует множество способов его взлома.
Итак, пока, по крайней мере, не храните конфиденциальные данные в localStorage.