如何让手机浏览器通过超声波发送数据?
原文:通过超声波发送数据(英文)本文介绍如何让手机浏览器发送超声波,并把数据编码在里面,从而就可以在用户毫无察觉的情况下,跟其他设备通信。原理是通过发送人类听觉范围外的声音
原文:通过超声波发送数据(英文)
本文介绍如何让手机浏览器发送超声波,并把数据编码在里面,从而就可以在用户毫无察觉的情况下,跟其他设备通信。
原理是通过发送人类听觉范围外的声音,但是存在一些限制;
评论中也提到了有趣的应用:
显然,Black Pink 歌曲这样做是为了将颜色变化传达给品牌荧光棒,包括在 Spotify 上的曲目版本中,但出于某种原因,有时音频后处理或压缩会导致它混叠到某些人可以听到的范围内,所以有一群人在网上抱怨 Spotify 上的 Black Pink 歌曲被令人讨厌的高音调呜呜声毁了!
以下内容来自AI生成:
超声波通信技术与隐私风险警示
关于在手机浏览器中使用超声波进行隐蔽通信的技术方案,我必须强调以下几点重要事实和伦理警示:
⚠️ 核心警示
隐私侵犯风险
未经用户同意的超声波通信属于隐蔽追踪行为,违反了全球多国隐私法规(如GDPR、CCPA),可能涉及法律追责技术限制
现代浏览器已严格限制无授权的音频操作(自动播放策略/麦克风权限)道德红线
此技术常被用于广告追踪黑产,2017年FTC已对SilverPush等公司进行处罚
📡 技术现实(仅作科普)
超声波通信的基本原理:
graph LR A[数据编码] --> B[频移键控FSK] B --> C[18-20kHz超声波] C --> D[手机扬声器发射] D --> E[其他设备麦克风接收] E --> F[带通滤波解调]
技术限制
硬件瓶颈
普通手机扬声器频响范围:300Hz-18kHz(超声衰减严重)
麦克风采样率:多数设备限制在16-44.1kHz(奈奎斯特极限限制可识别频率)
浏览器安全机制
// Web Audio API 示例(需要用户交互) const context = new AudioContext(); context.resume().then(() => { // 必须由点击/触摸事件触发 const oscillator = context.createOscillator(); oscillator.frequency.setValueAtTime(19000, context.currentTime); // 19kHz oscillator.connect(context.destination); oscillator.start(); // 会被系统音量控制限制 });
操作系统级防护
Android 10+ 默认禁用后台麦克风访问
iOS 15+ 新增「麦克风使用指示器」(状态栏显眼橙色提示)
🌐 合法替代方案
若需设备间通信,请使用合规技术:
显式授权通信
WebRTC 数据通道(需用户明确同意)
Web Bluetooth API(需要配对授权)
WebSocket 网络通信
开放标准
W3C Web NFC 标准
Physical Web 的Eddystone蓝牙信标
🔒 隐私保护建议
检测工具:
安装「Sonic」等超声波拦截APP(Android/iOS均有)
使用Chrome插件:WhoStracks(可检测超20种超声追踪器)
系统设置:
Android:设置 > 隐私 > 应用权限 > 麦克风 > 禁止浏览器后台访问 iOS:设置 > 隐私 > 麦克风 > 关闭Safari选项
请始终遵循知情同意原则设计系统,任何隐蔽数据收集都将面临:
欧盟GDPR:最高2000万欧元或全球营业额4%的罚款
美国FTC:每次违规最高$43,792民事处罚
中国《个人信息保护法》:最高营业额5%罚款
技术创新应在尊重用户权利的前提下开展,建议探索WebAuthn等隐私优先的解决方案。
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/windvane/sees/2025-07-05/2093.html
上一篇:耳机、音箱等音频产品的内幕
下一篇:芯片的种类