Безопасность HTML5 localStorage

Было бы хорошей или плохой идеей использовать localStorage для конфиденциальных данных (предполагая текущие реализации HTML5)?

Какие методы я могу использовать для защиты данных, чтобы он не мог быть прочитан человеком, имеющим доступ на клиентском компьютере?

Ответ 1

Плохая идея.

  • Кто-то, у кого есть доступ к машине, всегда сможет прочитать localStorage, вы ничего не можете сделать, чтобы его предотвратить. Просто введите "localStorage" в консоли firebug, и вы получите все пары ключей/значений, которые были хорошо представлены.
  • Если у вас есть уязвимость XSS в вашем приложении, все, что хранится в localStorage, доступно злоумышленнику.
  • Вы можете попробовать и зашифровать его, но есть улов. Шифрование его на клиенте возможно, но это означает, что пользователь должен предоставить пароль и, который должен зависеть от не очень хорошо протестированных javascript реализаций криптографии.
  • Шифрование на стороне сервера, конечно, возможно, но тогда код клиента не может его прочитать или обновить, и поэтому вы уменьшили localStorage до прославленного файла cookie.

Если это необходимо для обеспечения безопасности, лучше не отправлять его клиенту. То, что не под вашим контролем, никогда не может быть безопасным.

Ответ 2

Криптография с открытым ключом может применяться для предотвращения любого вторжения. Кроме того, проверки целостности данных (например, CRC или хэши) могут использоваться для проверки достоверности данных сервером.