文章摘要
用户在打开速卖通网页时,其支持多点连接的蓝牙耳机从手机播放的音频会中断,关闭页面后恢复。经排查,页面并无可见的音频或视频元素在播放,怀疑与WebAudio指纹追踪技术有关。
文章总结
好的,没问题。作为一名专业的中文编辑,我将为您重新陈述这篇文章的主要内容,保留关键细节,并删减与主题无关的冗余内容。
文章核心内容重述
标题: 阿里速卖通网页通过WebAudio指纹技术,干扰多设备蓝牙耳机切换
核心问题: 作者发现,在Firefox或Chrome浏览器中打开阿里速卖通(AliExpress)首页后,其支持多点连接的蓝牙耳机无法正常从电脑端切换回手机端播放音乐。关闭速卖通标签页后,问题立即消失。浏览器静音或系统静音均无效,且页面上没有可见的音频或视频在播放。
调查过程:
- 初步排查: 作者检查了页面上的
<audio>、<video>元素、媒体播放调用、媒体会话等常规媒体播放迹象,均一无所获。 - 深入调查: 作者通过包装
AudioContext构造函数和AudioNode.connect()方法,发现页面在加载后创建了两个隐藏的音频上下文(AudioContext)。 - 定位脚本: 这两个音频上下文分别由两个混淆的脚本创建:
collina.jsfireyejs.js这两个脚本均来自阿里云安全控制(AWSC)目录,属于阿里巴巴的浏览器安全与反滥用工具。
技术原理:
- 这两个脚本构建了一个WebAudio音频处理图:锯齿波振荡器 → 分析器节点 → 脚本处理器节点 → 增益节点(音量设为0)→ 音频输出目标。
- 虽然增益为0,用户听不到声音,但音频图仍然连接到了系统音频输出。这迫使浏览器持续处理音频,从而占用了蓝牙音频通道。
- 这与自动播放视频不同,浏览器常规的标签页静音功能无法阻止这种“无声”的音频处理。
脚本的真实目的:
- 这并非简单的媒体播放,而是一种浏览器指纹识别技术。通过分析特定波形经过不同浏览器、操作系统、音频库和硬件后产生的微小差异,结合Canvas、WebGL、硬件信息、交互事件等数据,可以构建一个独特的设备指纹。
- 速卖通使用此技术可能是为了区分真实用户与自动化脚本、机器人,用于反欺诈、反爬虫、账户安全以及用户行为追踪。
解决方案:
- 作者使用uBlock Origin插件,添加了以下两条过滤规则,成功阻止了这两个脚本的加载,从而解决了耳机切换问题:
! AliExpress AWSC fingerprinting scripts ||assets.aliexpress-media.com/g/AWSC/uab/*/collina.js$script,domain=aliexpress.com ||assets.aliexpress-media.com/g/AWSC/fireyejs/*/fireyejs.js$script,domain=aliexpress.com - 注意: 阻止这些脚本可能会导致在登录或结账时遇到更多验证码。作者建议在必要时临时禁用规则。
总结与观点:
- 速卖通首页在用户不知情的情况下,通过隐藏的WebAudio图进行设备指纹采集,并产生了干扰蓝牙耳机切换的实际硬件副作用。
- 作者认为,尽管反欺诈有其合理性,但这种隐蔽、难以检查且能影响外部硬件的实现方式,值得用户通过技术手段进行阻止。
评论总结
根据评论内容,总结如下:
主要观点: 用户发现速卖通(AliExpress)网站通过静默音频流进行设备指纹识别,引发隐私和安全担忧。
支持证据: - 用户emctech发现,打开速卖通网页会触发静默音频流,导致蓝牙耳机连接被占用,手机音频被阻断。调查发现这是混淆代码执行的设备指纹识别行为。 - "Opening the Aliexpress webpage causes a silent audio stream keeping the PC>headphone link active blocking my phone audio." - "An investigation reveals obfuscated code running device fingerprinting with a side effect being a silent audio stream..."
用户patspam在iOS应用中也遇到类似问题:打开速卖通App后,车载音频系统误判为音频指令,关闭App后问题消失。
- "if I’d recently opened the AliExpress iOS app... my car audio would freak out thinking I was giving it an audio command."
- "Killing the AliExpress app immediately fixed the problem."
用户CTDOCodebases指出,这种行为已持续数月,且音频变化类似麦克风被激活,但权限检查显示无麦克风访问。
- "No sound playing but the audio would change like the microphone was being activated."
- "I checked permissions to make sure there was no mic access and figured that they were fingerprinting."
不同观点与讨论: - 用户compsciphd建议,音频播放应像摄像头/麦克风一样需要权限许可,但用户可能因购物需求而允许。 - "the ability to play audio should be permission gated, much like the ability to use webcam/microphone." - "many people will gladly allow aliexpress to play audio as there are probably videos on the site."
用户nottorp指出,除隐私问题外,这种行为还浪费电池。
- "they are also wasting our fucking batteries on this crap..."
用户spicyjpeg举例其他网站类似行为,如eBay的WebSocket端口扫描和Reddit滥用DRM,说明浏览器指纹识别手段多样。
- "Browser fingerprinting can get creative at times... eBay's WebSocket port scanner and Reddit's abuse of DRM..."
建议与解决方案: - 用户echelon_musk建议将过滤规则提交至uBlock上游列表。 - 用户pama推荐iOS的“锁定模式”作为防护手段。 - 用户robtherobber呼吁政府和机构建立技术审查框架,社区也应开发深度分析脚本。
总体评价: 评论普遍对速卖通通过静默音频进行指纹识别的行为表示担忧,认为其侵犯隐私、浪费资源,并呼吁加强权限管理和技术审查。