Pull to refresh

Осторожно, HTML5

Reading time2 min
Views1.1K
HTML5 открывает широчайшие возможности для разработчиков web-ресурсов. Однако не стоит забывать, что эти возможности открываются не только для владельцев ресурсов, но и для различного рода мошенников. Хочу поделиться небольшим наблюдением, как необдуманная тяга к новым технологиям может ударить по безопасности ваших пользователей.

Существующая проблема с безопасностью хранения локальных данных в HTML5 ни для кого не секрет. Однако, для лучшего понимания, я напомню. HTML5 позволяет хранить локально данные в localStorage и в WebDatabase. Доступ к этим данным возможен из Javascript. Разграничение прав доступа к хранилищам построено на сочетании протокол+домен+порт. Очевидно, что несанкционированный доступ к этим данным можно получить, заставив посетить пользователя сайт по адресу соответствующему нужным нам протокол+домен+порт. И разместить на нем javascript код, который считает нужные нам данные и отправит их на сервер. Добиться этого можно, используя хорошо проверенные способы:
  • Используя DNS или ARP-spoofing;
  • Имея доступ к сетевому оборудованию;
  • Используя HoneyPot в виде бесплатной WiFi точки доступа или выходной ноды Tor сети;
  • С помощью шпионского ПО.

Набор инструментов весьма широк и, очевидно, использовать HTML5-хранилище для размещения критичных для безопасности данных просто нельзя. Я был очень удивлен, когда на одном известном ресурсе в локальной базе данных я обнаружил хранящийся там секретный ключ, используемый в механизме аутентификации. «Ой», — сказал я! Но потом подумал: «Наверное, они предполагают использование этот механизма только по HTTPS». Да, с HTTPS это схема уже получше выглядит, часть приведенных выше методов не сработает (конечно, на сайте стоило бы написать об этом крупными буквами). Но я стал копать дальше и опять расстроился. Главная страница сайта содержит подключаемые по HTTP скрипты, сводящие достоинства HTTPS к нулю – ключ также может быть украден. Надо все же отметить, что раскрытие этого ключа не дает непосредственного доступа к ресурсу, ключ является лишь дополнением к паролю.
Полагаю, при разработке приложений на HTML5 надо с большей осторожностью относится к хранению приватных данных в локальном хранилище.
Tags:
Hubs:
Total votes 24: ↑9 and ↓15-6
Comments7

Articles