Мне нужно разработать веб-приложение, которое будет работать в автономном режиме в течение длительного времени. Для того, чтобы это было жизнеспособным, я не могу избежать сохранения конфиденциальных данных (личных данных, но не таких данных, которые вы только сохранили хеширование) в локальном хранилище.
Я согласен с тем, что это не рекомендуется, но, учитывая небольшой выбор, я делаю следующее для защиты данных:
- encyrypting все, что происходит в локальном хранилище, используя криптографическую библиотеку stanford javascript и AES-256
- пароль пользователя является ключом шифрования и не сохраняется на устройстве
- обслуживание всего содержимого (в режиме онлайн) с одного доверенного сервера через ssl
- проверка всех данных, поступающих в локальное хранилище и из локального хранилища на сервере с использованием проекта owasp antisamy
- в сетевом разделе appcache, не используя *, и вместо этого перечисляйте только URI, необходимые для соединения с доверенным сервером.
- в целом пытается применить рекомендации, предложенные в чит-листах OWASP XSS
Я ценю, что дьявол часто находится в деталях и знает, что существует много скептицизма относительно локального хранилища и безопасности на основе javascript в целом. Может кто-нибудь прокомментировать, есть ли:
- основные недостатки в вышеуказанном подходе?
- любые возможные решения для таких недостатков?
- какой-либо лучший способ защитить локальное хранилище, когда приложение html 5 должно работать автономно в течение длительного времени?
Спасибо за любую помощь.