AliExpress 网页用静默 WebAudio 做设备指纹,还会抢你的蓝牙耳机——HN 981 分热帖(2026-08-21)
本文为翻译/转载,原文使用 CC BY-NC-SA 4.0 协议发布。 原文作者:Hacker News 社区讨论 原文标题:AliExpress runs silent WebAudio fingerprinting that breaks Bluetooth multipoint 原文链接:https://news.ycombinator.com/item?id=49372583 原文发布:2026-08-20 本博客不参与任何商业变现(含 ads / 付费 / affiliate),本译文遵循 CC BY-NC-SA 4.0 条款发布。
译者按
今天(2026-08-21)Hacker News 的榜首是一条 981 分、312 条评论的安全类帖子,主角是阿里旗下的跨境电商平台 AliExpress:用户发现打开 AliExpress 网页会触发一段”无声”音频流,把蓝牙 multipoint 耳机(可同时连电脑和手机)的通道占住,导致手机来电/消息提示音完全被”屏蔽”;顺着排查下去,发现是混淆过的 JavaScript 在用 WebAudio 做设备指纹识别,静音音频流只是副作用。帖子之所以能冲到当日第一,是因为评论区炸出了大量同类受害者:从 Twitter、Cloudflare 挑战页、欧洲外卖 App Wolt,到 Stripe Dashboard、亚马逊 App、甚至淘宝 iOS App,都被怀疑用类似手法”摸”过音频设备。对中文读者来说,这个话题几乎无需背景铺垫——“国内 App 是不是在偷听/偷摸我设备”是中文互联网常年热点,而这篇帖子恰好把 Web 端一套不需要任何权限弹窗就能探测硬件的机制完整拆开了。本文翻译该讨论的精华,并补充 Firefox 开发者对 WebAudio 指纹现状的权威说明。
发帖原文(AliExpress runs silent WebAudio fingerprinting that breaks Bluetooth multipoint)
帖子标题:AliExpress runs silent WebAudio fingerprinting that breaks Bluetooth multipoint 帖子链接:https://blog.laserphile.com/2026/08/aliexpress-webpage-keeping-multipoint.html 版权说明:原帖托管于 Blogger,页脚为 “Simple theme. Powered by Blogger.”,无任何 CC 标志,属默认 ©,本站未转载正文。以下内容均出自 HN 讨论线程(CC BY-NC-SA)。
发帖人 emctech(即原文章作者)的开场评论:
最近我的蓝牙耳机出了问题。它支持 multipoint 蓝牙音频,可以同时连接我的 PC 和手机。打开 AliExpress 网页会导致一条静音音频流持续占用 PC→耳机的连接,把手机音频挡在外面。调查发现是混淆代码在运行设备指纹识别,副作用就是这条静音音频流——Firefox、Chrome 和 Windows 都不认它,但它确实让蓝牙连接一直保持激活。
综合评论区可确认的事实(技术细节)
- 原理(emctech 回复 ngl999 的”为什么静音声音能用于指纹”):脚本生成一个已知波形,把它送进浏览器的音频实现,再分析输出结果。不同设备的设置与硬件会让输出不同——例如 PC 的模拟输出可能有 44kHz 的音频带宽,而蓝牙耳机带宽更低、参数不同。这就是一个可用于设备指纹的数据点,和屏幕/视口尺寸、设备像素比(device pixel ratio)、浏览器插件等并列。
- 指纹是否还有效:Mozilla/Firefox 开发者 tomrittervg 亲自下场说明——“WebAudio 指纹识别在 Firefox 中已在很大程度上被缓解(其他浏览器可能也类似)“,他写了一份快速概览介绍当前取值分布以及 Mozilla 最近的加固工作:https://ritter.vg/blog-webaudio_alibaba.html 。另一位评论者 mozdeco 也确认:“我们早就做过了,这个指纹在 Firefox 里不生效。”
- 历史背景(IX-103):这曾是极常见的指纹形式,一度能告诉网站你的操作系统和 CPU 架构;Chrome 已修复为”无论平台都返回相同答案”,Firefox 和 Safari 也类似修复过。即使如今大概率没用了,这类代码仍然留着——“因为追踪方删除代码的成本比保留它更高”。
- 更深入的现象(ValdikSS):脚本会探测所有音频设备、包括麦克风,这大概会把蓝牙设备临时切到 HPF 模式(蓝牙双工音频的工作方式所致)。“无声”其实不完全准确——如果当前没在播放任何东西,AliExpress 会唤醒声卡,每次打开标签页都会发出极微弱的”pop”声。“至少三年多来一直如此。”
- 不只是蓝牙(prima-facie):在 pavucontrol 里能看到 Firefox 在访问 AliExpress 时输出音频,即使什么都没在播放。uBlock 过滤器可修复:
||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。发帖人 emctech 补充:uBlock Origin 默认不拦截,需要自定义过滤器;他曾尝试把过滤器提交给 uAssets 上游列表,“他们说没兴趣”。 - Mozilla Bugzilla 关联(fg137):这在 Windows 上部分导致了 Firefox 的一个睡眠相关 bug:https://bugzilla.mozilla.org/show_bug.cgi?id=1863193
- 为何浏览器分不清”静音播放”(michaelt):大多数做音频指纹的网站用的是
OfflineAudioContext——它不实时运行、也不把输出送到扬声器,而是以快于实时的速度把结果写到 AudioBuffer 里,所以浏览器其实很容易判断”没有声音在真正播放”。 - 指纹信息量(hunter2_):绝大多数设备是 48kHz/24-bit 输出、少数 44.1kHz/16-bit,取值集合很小——但就像 devicePixelRatio 一样,“每个测量只需要一两个比特,累积起来就是高质量的指纹”。
- 法律层面(kinnth、kenniskrag、Animats 等):多位评论者指出这涉嫌违反 GDPR(指纹识别不属于”严格必要”,按 cookie 法需用户同意);Animats 认为可按美国 CFAA 的”超越授权访问”(exceeds authorized access)主张,like_any_other 则对比了 AT&T iPad 邮箱泄露案——“按可预测 ID 猜邮箱列表会被 FBI 抄家,为什么指纹识别没人管”。
社区精彩评论精选
(以下按评论 ID 排列,均出自 HN 讨论 https://news.ycombinator.com/item?id=49372583,CC BY-NC-SA)
技术解释
ngl999(49373018):“纯好奇,为什么静音声音能做指纹识别?听不见的话,它在采样什么?”
emctech 回复(49373037):“脚本生成一个已知波形,让它经过浏览器的音频实现,然后分析结果。根据你设备的设置和硬件,输出会不一样——比如 PC 的模拟输出可能是 44kHz 音频带宽,而蓝牙耳机带宽更低、也不同。这个数据点可以和屏幕/视口尺寸、设备像素比、浏览器插件等一起用于设备指纹。”
tomrittervg(49379597,Mozilla/Firefox 开发者):“WebAudio 指纹识别在 Firefox 中已在很大程度上被缓解(其他浏览器可能也类似)——我写了一份快速概览,介绍当前取值分布以及我们最近的工作:https://ritter.vg/blog-webaudio_alibaba.html”
IX-103(49379997):“这其实是极常见的指纹形式。曾几何时它能告诉网站你运行的操作系统和 CPU 架构。我知道 Chrome 已修复了这类指纹(无论平台都返回相同答案),Firefox 和 Safari 应该也修过,只是我没那么密切关注它们的发布。当然,即便现在可能没用了,这类代码还是留着——因为追踪方删代码的成本比留着的成本高。”
ValdikSS(49374244):“它们会探测所有音频设备、包括麦克风,这大概会把蓝牙设备临时切到 HPF 模式——因为蓝牙双工音频就是这样工作的。说它’无声’其实不太准确:如果当前没有播放任何东西,AliExpress 会唤醒我的声卡,导致每次打开标签页都有极微弱的’pop’声。至少三年多来一直如此。”
hunter2_(49375338):“一方面,我预期这里的取值变化不会太多(绝大多数设备应该是 48kHz/24-bit 输出,少数 44.1kHz 和/或 16-bit 等),但就像 devicePixelRatio 和所有那些实际取值集合很小的属性一样,每个测量只需要一两个比特,累积起来就能得到高质量指纹。”
michaelt(49384852):“大多数网站做音频指纹时用的是 OfflineAudioContext——它不像普通 AudioContext 那样实时运行并把输出送到扬声器,而是以快于实时的速度运行、输出到 AudioBuffer。所以浏览器很容易判断出没有声音在播放。比如你可以让浏览器生成一个 10kHz 方波,喂给 GainNode 再进 DynamicsCompressorNode,输出到 buffer,然后对内容取哈希。”
lapcat(49373762):“顺带一提,Cloudflare 的挑战页也用 Web Audio。“(emctech 追问”是持续占用音频流还是只在挑战期间短暂触发?“——lapcat 答:“只在挑战期间,很短暂。“)
用户实证:中招的不止 AliExpress
CTDOCodebases(49373004):“他们这样做好几个月了。没有声音在播放,但音频状态就像麦克风被激活了一样在变。我检查了权限、确认没有麦克风访问,然后断定他们在做指纹识别。”
patspam(49372945):“最近几周我注意到,只要最近打开过 AliExpress 的 iOS App(哪怕只是后台挂着),我的车载音响就会发神经,以为我在给它下语音指令。杀掉 AliExpress App 立刻就好了。发生不止一次之后我认定这玩意有问题,直接把 App 卸载了。”
miki123211(49373745):“啊,所以这就是 Wolt(欧洲的 DoorDash)在做的事。我注意到在用 App 时 VoiceOver(iOS 屏幕阅读器)会咔哒响、音量随机变化,之前我归咎于 iOS 的正常怪癖、可能误用了某个 iOS API。现在想想,这很可能就是指纹识别。”
kappi(49374478):“不只是蓝牙音频。在 Windows PC 上,如果 Chrome 里开着 AliExpress 标签页,再切到 YouTube 标签页播放,YouTube 就没声音。”
mgerdts(49373899):“用我之前的助听器时,我注意到访问各种网站会导致环境噪音放大的程度发生变化。我一直以为是蓝牙在搞什么,而且大概率不是好事。现在看,静音蓝牙小动作很可能还在继续。”
julianlam(49381299):“我装 AliBaba App 时也遇到过类似的事。只要装着它,我的蓝牙设备就只能以’headset’模式出音频——音质极差。卸载 App 就好了。”
botanical(49385249):“几年前我就在 AliExpress 上注意到这个了,用的是便宜的蓝牙耳机。实际上,所有中国电商网站出于某种原因都会激活音频。”
corentin88(49380274):“我打开 Stripe Dashboard 戴 AirPods 时也遇到同样的问题。”
rootsudo(49378164):“我在其他 App 上也注意到了,它会打断 AirPods,后台放着 Spotify 时尤其明显。感谢调查!这么一说,iOS 上的淘宝 App 也是这个德性。”
mdavidn(49377330):“我在带广告的网站上经常注意到这个。上班时我用 AirPods 在手机上听歌,在 Mac 上打开网站就会例行公事地抢走 AirPod 连接,却什么可听的声音都不放。”
fuzzy2(49378122):“我访问一家德国科技新闻网站的文章时,它会打断我 iPad 上的音乐播放(网站抢走了音频焦点)。我赌他们也在做类似的事。”
tecleandor(49376222):“这能解释我最近几周遇到的 multipoint 问题——音频会’卡’在其中一台设备上,即使(表面上)什么都没在播放。“
隐私、权限与法律
pyaamb(49373909):“需要重新思考这个允许(甚至鼓励)‘可推诿’行为的体系。从’哦我们需要这个权限来做[非必要功能],你要用这 App 就得接受’,到把设备的最终控制权交给用户。必要时虚拟化 App 能看到的东西、喂它假数据/假标识符/假设备,让它干该干的活。如果 App 不打算诚信行事,用户凭什么诚信?细粒度权限在实践中根本没用——App 可以一直烦你,直到你屈服点 Allow。”
kinnth(49375984):“这听起来是 GDPR 问题吧?不能把他们告到欧盟去吗?“(kenniskrag 答:能——“这种情况下很可能不允许,因为指纹识别不是严格必要(cookie 法),需要用户同意。”)
Animats(49380587):“就凭这个,完全可以按 CFAA 的’超越授权访问’(exceeds authorized access)主张起诉。真要投诉的话说不定还真有动作——因为它是来自中国的。”
like_any_other(49382788):“按可预测 ID 猜邮箱列表拿邮件,会招来 FBI 抄家、被判未经授权访问计算机罪。为什么指纹识别不享受同等待遇?我的意思是完全同等待遇——先 FBI 突袭、逮捕、没收电脑,然后再谈上法庭。”
handle584(49374749):“与此同时,大家因为 Anthropic 用时区和 Unicode 做同样的事就大惊小怪,却没意识到中国公司在滥用 iOS / Android / Web 上有多狠。拼多多——Temu 的母公司——就因为此目的利用 Android 0day 漏洞而臭名昭著。”
ajross(49373968):“你想要的其实已经是现状了。在手机平台和 PWA 上,所有权限都对用户显式可见、随时可撤销、App 不得再次申请已被拒绝的权限。平台在架构侧能做的都做了。下一阶段是对恶意软件做人工审计执法——AliExpress 这档子事或许有望撞上枪口。”
drdexebtjl(49374175):“App 能察觉权限被拒——这本来就是设计使然,但没必要如此。应该做到让 App 无法察觉你拒绝了权限。就本文的情况而言,浏览器可以继续处理音频,但永远不把它接到真实的音频输出设备上。“(ajross 反驳”那只是开启军备竞赛……’这功能能不能用’是技术界最容易回答的问题之一,这场仗我们赢不了”,drdexebtjl 回击”这不是打仗,是为了用户的利益和自主性做工程”。)
反思与吐槽
gmueckl(49374307):“看到人们找到创造性的方式来滥用浏览器,我内心总有一丝微笑。这不过是又一次证明:当前 Web 从设计上就是坏的。随着每个新特性暴露给 JavaScript,浏览器和’允许任意代码执行的随机程序’之间的区别越来越学术化了。当然,我也是个糟糕的双标狗——我自己也用 WebUSB、WebRTC 这些特性的网站。”
MatrixMan(49377110):“蓝牙真是一团糟。你知道什么没这问题吗?线缆。”
Grombobulous(49374454):“要不是这事这么严重,我都想开个玩笑说’没想到 AliExpress 还能干出这种事’——但我觉得,这网站彻底的技术烂摊子是有意为之。我毫不怀疑我感受到的是一种心理效应:消费者把’糙’和’低价’划等号,所以 AliExpress 和 Temu 看起来完全是技术灾难,实际上人家在干这种高级活儿。”
lxgr(49376272):“我希望这种小动作能触发浏览器标签页上那个小喇叭图标。既然不会(至少我没见过),我猜’播放静音音频’在网站上已经足够常见,以至于浏览器犯不着去做’分析音频流内容’这种更复杂的事……另外我想知道,这是不是也允许网站在移动浏览器里后台持续运行?播放媒体是为数不多能让 iOS Safari 让一个标签页无限期存活的东西。”
downrightmike(49376555):“做这种事没有任何正当理由。”
big_dave212(49376186):“普通用户想调试这个问题基本无望——你永远不会想到去怀疑一个购物标签页。感谢有人做了这趟苦差事。“(emctech 答:“它就是烦到我听不了音乐了!“——gaudystead 补刀:“被冒犯的进阶用户的怒火,堪比地狱。”)
shevy-java(49375270):“我们需要找到对付浏览器嗅探用户的办法。这里说的是 AliExpress,但首先,哪些浏览器本身就在这样监视人?那才是真正的首要问题。”
mywittyname(49379800):“也许可以让 Claude 把 App 重建成一个不坑人的版本——分析站点里相关的数据 API,避开追踪那一套。也许该有人给这些热门网站维护一个 MCP,让大家能用 agent 直接操作它们。“
译者注
- WebAudio 指纹:浏览器指纹(browser fingerprinting)指不依赖 Cookie、通过收集设备特征来识别用户的技术。WebAudio 是其中一种信号——音频处理管线(采样率、缓冲、硬件混音路径)在不同设备上略有差异,脚本播放一段已知波形再测量”变形”结果即可提取特征。同类信号还包括 Canvas 渲染差异、屏幕/视口尺寸、时区、字体列表、devicePixelRatio 等。Mozilla 开发者 tomrittervg 的说明(https://ritter.vg/blog-webaudio_alibaba.html )指出:Firefox 已通过把音频参数向”最常见取值”收敛的方式大幅削弱这一指纹。
- multipoint(多点连接)蓝牙:耳机可同时保持与两台设备的连接(如 PC + 手机),哪边有音频就切哪边。AliExpress 的静音音频流会”占住”PC 这条通道,导致手机来电提示、消息音无法切入——这正是发帖人最初的烦恼。
- HPF 模式:ValdikSS 提到的蓝牙双工限制——耳机同时收发时会切换到电话模式(headset profile),音质降级。评论区 julianlam 的”只有 headset 模式、音质极差”就是同一现象。
- 与中文圈对照:评论区 botanical 的”所有中国电商网站都会激活音频”、rootsudo 的”iOS 淘宝 App 也是这个德性”、handle584 点名的拼多多 Android 0day 事件,在中文互联网语境里是长期热议的”App 偷听/偷摸设备”话题。区别在于:本贴的主角是网页端——不需要安装任何 App、不需要任何权限弹窗,浏览器标签页就能探测并占用你的音频硬件,这比”装 App 给权限”的讨论更进一步。国内用户在微信/淘宝/抖音网页版遇到”耳机突然断连""播放没声音”时,这或许是一个值得排查的方向。另外,评论区”浏览器应当显示播放指示、把音频输出权限化”的呼吁,与国内厂商对 Web 权限管控的讨论可以互参。
- uBlock Origin 过滤器:正文给出的两条规则分别拦截 AliExpress 的两个混淆脚本(collina.js 与 fireyejs.js),需要自行添加到 uBlock 的”我的过滤器”中;发帖人提交到 uAssets 上游被拒,因此短期需手动维护。关闭整个站点的 JavaScript 是更彻底但也更伤体验的”核选项”。
延伸阅读
- 技术热点落地:Cloudflare 静默注入 Web Analytics——免费计划默认开启的 RUM 与自检关闭清单(2026-08-17)
- 技术热点落地:Rust 供应链投毒 arrayref 0.3.10——恶意 build.rs 自查与 cargo 依赖防线清单(2026-08-21)
- Siri 与私有推理:Lobsters 上 7 条把 Apple「Private Cloud Compute」钉死在「AI 谎言」标签上的高赞讨论(2026-06-15)
- AI;DR(AI 没读):懒得读 AI 生成的内容——HN 937 分热帖激辩 AI slop 文化与职场 AI 内容(2026-08-18)
- OpenRouter 并入 Stripe:70 亿美元收购引爆 HN 884 分热帖(2026-08-20)