Пользователи AliExpress столкнулись с необычной проблемой: при открытии главной страницы маркетплейса их Bluetooth-наушники перестают переключаться между устройствами. Расследование показало, что сайт запускает скрытые аудиоконтексты через WebAudio API, которые используются для создания цифрового отпечатка браузера, но при этом перехватывают управление аудиопотоком и мешают работе многопунктовых наушников. Проблема воспроизводится в Firefox и Chrome и исчезает сразу после закрытия вкладки с AliExpress.

При загрузке страницы AliExpress создает два экземпляра AudioContext из скриптов collina.js и fireyejs.js, расположенных на assets.aliexpress-media.com. Эти скрипты строят звуковой граф, который генерирует сигнал с пилообразным осциллятором, пропускает его через AnalyserNode и ScriptProcessorNode, а затем направляет в AudioContext.destination с нулевым коэффициентом усиления. Пользователь не слышит звука, но система считает, что идет воспроизведение, и удерживает аудиопоток активным. Это приводит к конфликту с многопунктовыми Bluetooth-наушниками, которые не могут переключиться на телефон, пока компьютер играет звук.
Сами скрипты являются частью системы безопасности и антифрода Alibaba и выполняют комплексную проверку браузера. Помимо аудиотеста, они собирают данные о canvas, WebGL, разрешении экрана, количестве ядер процессора, установленных плагинах, поддерживаемых форматах, поведении WebRTC и даже о движении мыши. Вся информация шифруется и отправляется на серверы Alibaba для создания уникального отпечатка устройства, который сложнее подделать, чем cookie. Разработчики Firefox уже подтвердили проблему, и для нее открыт баг-трекер.
Пользователи могут заблокировать скрипты с помощью uBlock Origin, добавив правила фильтрации для collina.js и fireyejs.js. Однако это может привести к появлению дополнительных капч при входе или оформлении заказов. Блокировка также не гарантирует, что AliExpress не найдет другие способы для сбора данных, но она решает проблему с переключением наушников и предотвращает скрытое аудио-слежение без ведома пользователя.
Читайте также: Построенная вручную лодка на солнечных батареях прошла 5000 км без единой заправки