为什么?指纹识别。这些 API 并没有被用于其预期目的,而是被用于粗俗的广告技术。例如,“我们不知道你究竟是谁,但通过脚本,我们可以知道你的手机在早上 8:00 到 8:13 之间停止了闲置状态,并且靠近 JBL BATHROOM 蓝牙设备,所以可能是爸爸在早上上厕所!让我们尽快向他展示一些关于更优质扬声器和法兰绒衬衫的广告。”
我将从 Catalin Cimpanu 的文章 中提取完整的列表。
- Web Bluetooth – 允许网站连接到附近的蓝牙 LE 设备。
- Web MIDI API – 允许网站枚举、操作和访问 MIDI 设备。
- 磁力计 API – 允许网站访问用户周围本地磁场的数据,这些数据由设备的主磁力计传感器检测到。
- Web NFC API – 允许网站通过设备的 NFC 读取器与 NFC 标签通信。
- 设备内存 API – 允许网站以千兆字节为单位接收设备内存的近似量。
- 网络信息 API – 提供有关设备用于与网络通信的连接的信息,并提供了一种方法,使脚本能够在连接类型更改时收到通知。
- 电池状态 API – 允许网站接收有关托管设备的电池状态的信息。
- Web 蓝牙扫描 – 允许网站扫描附近的蓝牙 LE 设备。
- 环境光传感器 – 允许网站通过设备的原生传感器获取托管设备周围环境光的当前光照水平或照度。
- EME 的 HDCP 策略检查扩展 – 允许网站检查 HDCP 策略,用于媒体流/播放。
- 接近传感器 – 允许网站检索有关设备与物体之间距离的数据,这些数据由接近传感器测量。
- WebHID – 允许网站检索有关本地连接的人机界面设备 (HID) 的信息。
- 串行 API – 允许网站写入和读取串行接口的数据,这些接口由微控制器、3D 打印机等设备使用。
- Web USB – 允许网站通过 USB(通用串行总线)与设备通信。
- 地理位置传感器(后台地理位置)– 旧版地理位置 API 的更现代版本,允许网站访问地理位置数据。
- 用户空闲检测 – 允许网站知道用户何时处于空闲状态。
我的感受很复杂。我确实喜欢 Web 成为一个构建任何类型的应用程序的竞争平台的想法,有时像这样的花哨 API 会打开这些大门。
更不用说,其中一些 API 旨在执行负责任的操作,例如通过网络信息 API 了解连接速度,并在您可以的情况下发送更少的数据,以及电池状态 API 也一样。
这与 CSS 中的 :visited
类似。您是否注意到在已访问链接上无法使用某些 CSS 声明?JavaScript API 甚至会 直接撒谎 关于已访问链接的当前样式,以使链接始终显示为未访问。因为指纹识别。
为了保护他们的 App Store 业务而采取这种做法简直是胡说八道,损害了开放的 Web。
同意!
同意!
我对这些也有复杂的感觉,但我认为网络 API 应该成为标准,只要没有泄露实际网络端点(手机基站、WiFi 名称等)的可能性。如果它仅用于评估网络速度/偏好,那么它可能非常有用。您可以根据网络速度或“数据节省”偏好加载更高质量的资源、预加载项目等。
他们已经为各种 API 实现了权限提示,因此这可以应用于许多此类 API。这些也不会在添加到主屏幕的网站上实现。这与在最小 UI 模式下网站底部 44 像素的死区一样,似乎都是为了促使开发人员创建应用程序。不实现有用的 API(如其中的许多 API)并禁用触手可及的最佳屏幕区域,似乎都是反竞争投诉的良好基础。
当然,这与这样一个事实无关:如果我们能够在 Safari 上使用这些 API,我们就不会将我们的应用程序放置在 AppStore 上并向 Apple 付款。
在我看来,这对苹果来说是一个展现领导力的绝佳机会。如果他们决定不忽视 Web API 的进步,而是为用户实现优雅的 OPT-IN 工作流程,那么他们可以在实施具有隐私影响的功能时为其他浏览器设定标准。
这会影响使用相同功能的 iTunes 订阅者吗?
一些愤怒的评论者声称,这是因为苹果不想失去 App Store 的收入,而忽略了 Mozilla 目前也拒绝实现其中一些 API 的事实。
特别是,蓝牙、MIDI、串行和 USB API 已被 Mozilla 标记为严重的安全性漏洞。他们认为,没有任何权限提示能够向非技术用户解释这些 API 的危险性。WebUSB 中已经存在一个漏洞,允许研究人员入侵 Yubikey 的安全令牌(https://www.wired.com/story/chrome-yubikey-phishing-webusb/),并且针对大多数这些 API 的攻击(理论上可行)可以让您将远程设备重新编程为键盘,然后攻击者可以作为用户执行任意命令(https://github.com/WebBluetoothCG/web-bluetooth/issues/46)。
在对 Apple 大加指责之前,请注意,大多数(如果不是全部)这些 API 目前仅限于 Chromium。
我在这方面与 Chris 站在同一阵线。我 100% 支持开放的 Web 和能够构建与原生技术竞争的应用程序,但我们追踪(对不起,嗯,“个性化”)的文化使得这变得不可能。跟踪器甚至不尊重“请勿跟踪”设置。如果有隐私问题,或者尤其是安全问题,那么它就无法启动。如果并且当这些问题得到解决时,我们就可以开始构想 App Store 的阴谋论了。