调试蓝牙多点耳机时,开发者 Matt Callaghan 撞上了一个意料之外的故障:耳机无法把音频焦点从桌面浏览器切到智能手机。排查之后他发现,问题不在耳机,而在阿里巴巴旗下 AliExpress 网站——页面没有播放任何可听声音,却一直维持着一个活跃的音频流。
零音量音频流锁死蓝牙多点路由
![]()
这个静默音频流让主机操作系统无法进入空闲状态,蓝牙多点路由因此被锁住。结果就是耳机卡在桌面浏览器上,无法正常切换到手机。对用户来说,这看起来像耳机坏了;实际上,是网页在后台持续占用音频通道。
Callaghan 对页面资产做了混淆还原,找到了罪魁祸首。AWSC 反机器人套件里嵌入了两个脚本:collina.js 和 fireyejs.js。它们构建了一个合成的 Web Audio 处理图,目的不是播放声音,而是捕获硬件相关的执行特征,用来做设备指纹识别。
反机器人脚本藏在页面里采集硬件特征
这套跟踪例程运行在 AliExpress 主页上,用户听不到任何声音,但音频处理图一直在工作。它通过 Web Audio API 获取设备在音频处理上的执行差异,这些差异与硬件、浏览器、驱动等因素相关,足以形成可识别的指纹。
换句话说,这不是一次普通的广告跟踪,而是一套被包装进反机器人防御的静默识别机制。用户没有点击播放,也没有授权音频,但指纹采集已经在后台完成。
Web Audio API 的权限缺口被暴露
这一事件指向一个结构性问题:Web Audio API 在权限设计上存在明显缺口。其他敏感 API 通常需要明确的用户同意,但初始化 AudioContext 并渲染合成图,不需要任何授权。网站可以静默创建音频上下文,执行处理图,采集设备特征。
这意味着被动式反机器人防御可以在用户完全不知情的情况下运行。它不弹窗、不出声、不请求权限,却可能同时影响隐私和设备功能。AliExpress 这个案例里,它直接干扰了蓝牙多点的正常切换。
隐私与设备功能的双重代价
从隐私角度看,设备指纹识别让网站可以在没有 Cookie 的情况下持续识别用户。音频处理特征一旦被采集,就能与其他指纹维度组合,形成更稳定的追踪标识。用户即使清理浏览器数据,硬件层面的特征仍然存在。
从设备功能看,静默音频流占用了系统音频资源,阻止空闲状态,进而影响蓝牙多点路由。一个本应提升便利性的功能,被一段隐藏脚本拖垮。开发者需要靠调试耳机才能发现,普通用户几乎不可能察觉。
这次发现把 Web Audio API 的权限问题从理论讨论推到了现实案例。它说明,浏览器在音频权限上的宽松设计,已经被商业化反机器人系统实际利用。接下来,浏览器厂商是否会对 AudioContext 的初始化增加限制,值得继续观察。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.