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