惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
量子位
D
DataBreaches.Net
博客园 - 司徒正美
J
Java Code Geeks
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
B
Blog
The Cloudflare Blog
D
Docker
I
InfoQ
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
腾讯CDC
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
S
SegmentFault 最新的问题
GbyAI
GbyAI
有赞技术团队
有赞技术团队

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
iOS 14 新增的本地网络权限,要开给第三方 App 吗? - 少数派
2020-07-03 · via 少数派

很多尝鲜 iOS 14 的用户,在升级完成后会遇到 App 请求一个名叫「Local Network(本地网络)」的权限。

iOS 14 新增的「Local Network(本地网络)」权限提醒

相信大家对这个权限有很多疑问:本地网络权限是什么?为什么要对它做出限制?以及哪些应用真的需要这个权限?这三个问题将在本文里得到解答。

本地网络权限是什么,为什么要限制?

本地网络(局域网)

本地网络也叫局域网,是将设备接入路由器以后形成的网络,设备可以通过这张网络互相通信,让你可以在手机上将歌曲从无线音响里播放出来,在公司用公共打印机打印文档,在朋友家一起用 Switch 联机打游戏。

从 iOS 13 开始,应用想要获得当前连接到的 Wi-Fi 名称,那就必须要获得定位权限。因为通过识别 Wi-Fi 名称, 应用就能轻松地在你和周围的人之间建立大数据网络。但是不给定位权限不代表应用就没有办法跟踪你了,因为应用可以通过本地网络里的设备进行跟踪。

可以通过 MAC 地址识别特定的局域网

在过去的 iOS 版本中,应用可以随意扫描本地网络中的设备,因此应用就可以很轻松地得到本地网络里所有设备的名称和 MAC 地址。MAC 地址是一种确认网络设备位置的地址,每个网卡都有一个唯一的 MAC 地址,加上 MAC 地址也具有唯一性,设备厂商会按照一定的规律分配 MAC,所以不同的局域网都是独一无二可以识别的。

这样就通过 MAC 地址和设备的名字以生成一个特定的「指纹」,持续地、跨应用地、跨设备地跟踪用户的行为,并对用户画像持续进行调整。

比方说,你从线下渠道买了个新相机,拍完照片利用相机自带的 Wi-Fi 将照片导入到手机上。这时候带有某个推广模块的应用对局域网发起了一次扫描,识别到了一个新的设备,推广模块会将相机的 MAC 地址上传了云端,进行简单的识别对比以后,很容易知道这个 MAC 地址属于相机。这样带有推广模块的应用都会在画像里给你加上「相机用户」这样的标签,当你下次打开带有同一个推广模块的购物应用时,你就会看到推荐了一堆和相机有关的东西。

程序 A 在和相机交换数据时,程序 B 也可以扫描这个相机

所以在 iOS 14 里,Apple 开始对本地网络权限做出了更加严格的限制。

那么到底哪些 App 我们需要给本地网络权限呢?

就大部分应用而言,它们都不需要给本地网络权限。因为它们没有功能会使用到本地网络,请求这个权限的主要目的就是为了跟踪用户并推送广告。

HomeKit、AirDrop、AirPlay 和 AirPrint 都是不需要网络权限的

使用 HomeKit、AirDrop、AirPlay 和 AirPrint 的应用也不需要给出本地网络权限,使用这类 API 的时候苹果会以保护隐私的前提下传输和交换数据。

智能家居 App(非 HomeKit 型,比如米家等)、在线流媒体投屏类 App (比如 Spotify、腾讯视频等)会相对复杂一点:配对时需要授予权限,控制时可以选择性授予权限。

配对智能家居和电视时,对应的 App 只有先在本地找到对应的设备,才能进行配对,所以这个过程是必须要授予本地网络权限的,配对完成以后大部分的智能家居服务会把设备记录到云端。

而到了控制时,由于在云端存有智能家居的信息,用户在控制时 App 会先尝试从本地提交请求,如果无法连接的话再从云端向设备推送请求,即可以选择性授予权限。

简单的延迟测试

从本地推送和从云端推送,简单的开关命令、调节命令延迟实际上没有特别大的区别,所以不给本地网络权限是完全可以的。只有在网络环境较差时,推送和播放内容的时才会感觉到明显延迟和卡顿。所以我认为,智能家居类 App 还是在线流媒体的投屏推送类 App 只需要在配对时短暂打开一段时间,日常使用的时候完全没有必要给本地网络权限。

最后这三类 App 是必须要授予本地网络权限的,它们包括:

  1. 利用本地网络进行设备发现
  2. 利用本地网络进行数据传输
  3. 网络调试工具

利用本地网络发现设备的应用我接触的也不是很多,大部分都是和智能家居有关的 App。其他和这方面有关的应用有:邀请同一网络下的好友一起加入游戏的应用和路由器的管理应用等。

而利用本地网络传输数据的应用还是挺多的,比如你用本地视频播放器 nPlayer 播放 NAS 里的视频时就需要本地网络权限;又比如你想要把手机里的照片利用第三方软件投射到电视上,这也是需要本地网络权限的;再比如你经常使用 TIM 里的面对面快传,这项功能也需要本地网络权限才能正常工作。利用本地网络传输数据的场景还有很多,这里我只是举出了三个常见的例子。

最后一个就是极客用得比较多的网络调试工具,比如 HE Network Tools,如果不给本地网络权限的话所有和本地网络有关的测试工具都会失败。不过我相信使用这类应用的人都知道要打开这个权限。