Иногда веб-стандарты используют совсем не с той целью, с какой их создавали. Так случилось и с Battery Status API, который предполагалось использовать для экономии энергии на мобильном устройстве пользователя с помощью более легких версий сайтов. Но нашлись и другие применения.
Исследователи из Принстонского университета опубликовали доклад, из которого следует, что API для контроля оставшейся энергии на устройстве может использоваться для отслеживания пользователя. Зная точный уровень батареи, можно вычислить человека даже после смены IP-адреса, юзерагента и других публичных данных. Но это не единственная проблема.
Онлайн-магазины и сервисы могут поднимать цены на срочные товары или услуги в том случае, если уровень энергии на устройстве пользователя близок к нулю. Ведь у человека нет выбора, и покупку надо совершить срочно.
Несмотря на то что Battery Status API является частью стандарта HTML5, мы приняли решение отключить его по умолчанию в Яндекс.Браузере для Android. Мы оставляем возможность включить этот API вручную на случай, если он по какой-то причине необходим вам.
Мы также отключили по умолчанию Vibration API, который позволял сайтам использовать вибрацию на вашем телефоне без явного согласия. Злоумышленники научились применять его на сайтах-вымогателях для запугивания пользователей.
Если вам знакомы полезные сервисы, которые используют в своей работе эти API, то, пожалуйста, расскажите нам о них. Мы планируем обсудить с сообществом W3C новые версии стандартов, которые бы учли неочевидные особенности применения.