Xakep #305. Многошаговые SQL-инъекции
Летом 2016 года эксперты предупреждали о том, что один из элементов HTML5, Battery Status API, может быть использован для слежки за пользователями. Тогда исследователи из Принстонского университета, Стив Инглхард (Steve Engelhard) и Арвинд Нараянан (Arvind Narayanan) представили доклад, в котором рассказали, что им удалось обнаружить два скрипта, которые отслеживают пользователей посредством Battery Status API. Первый скpипт собирает данные о текущем уровня заряда и комбинирует эти данные с локальным IP-адресом пользователя и другими уникальными параметрами. Второй скрипт собирает данные о текущем уровня заряда, статусе батареи и времени, оставшемся до перезарядки или разрядки устройства.
Напомню, что Battery Status API впервые был представлен в составе HTML5, и в настоящее время является частью браузеров Firefox, Chrome и Opera. Исходно предполaгалось, что API позволит владельцам сайтов видеть уровень заряда батарей ноутбуков, планшетов или смартфонов посетителей. По идее, опираясь на эти данные, владельцы сайтов могли бы создать более энергоэффективную версию ресурса, которая помогала бы экономить заряд батарей пользователей.
Стоит отметить, что специалисты предупреждали о возможности использования Battery Status API не по назначению еще в 2015 году. Сначала об этом писали исследователи из Стэнфорда, а затем и исследователи из Лёвенского католического университета и национального исслeдовательского института Франции. Тогда эксперты объясняли, что API позволяет присвоить пользователю псевдоуникальный идентификатор, основывающийся на скорости разрядки батареи (в секундах) и уровне заряда (в процентах).
Как оказалось, инженеры Mozilla прислушивались к словам исследователей. На прошлой неделе инженеры организации сообщили, что Battery Status API вскоре исчезнет из Firefox, начиная с версии Firefox 52, релиз которой запланирован на начало марта 2017 года. По данным разработчиков, сейчас Battery Status API используют около 6% сайтов, но вряд ли ради его легитимной функциональности.
Таким образом, Battery Status API сохранится только в Google Chrome, так как Apple Safari не использует Battery Status API, хотя и имеет имплементацию в WebKit. Сейчас разработчики и вовсе обсуждают возможность окончательного удаления кода API из WebKit.
Фото: Depositphotos