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

推荐订阅源

IT之家
IT之家
博客园_首页
S
SegmentFault 最新的问题
罗磊的独立博客
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
D
Docker
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
V
V2EX
大猫的无限游戏
大猫的无限游戏
V
Visual Studio Blog
腾讯CDC
宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
Vercel News
Vercel News
H
Help Net Security
博客园 - Franky
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏

少数派

派早报: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 - 少数派
全局剪贴板:隐私的照妖镜 - 少数派
2020-07-01 · via 少数派

Matrix 精选

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


你可能看到许多应用未经允许粘贴粘贴版内容的新闻。在讨论它们之前,我们先来看看什么是全局剪贴板。

开发者在开发软件的过程中,会用到许多第三方提供的现有功能,或设备厂商提供的现有功能。这次舆论中心的全局剪贴板其实是 Apple 开发者组件中的一个常用类别:UIPasteboard

为什么剪贴板是所有应用通用的呢?其实这也好说,剪贴板的作用其实就是临时存储图片或文字,以便用户在跨设备,或者跨应用粘贴时迅速提取到已复制好的内容。因此有必要设计成所有应用程序都可以轻易将内容存进去,或者取出来。

正常来说,开发者将图片和文字复制后,这些内容就会进剪贴板里。以下图中的文字为例,当我们点击复制按钮时,这段文字便会存入剪贴版中。实现代码如下:UIPasteboard.general.string = "不平庸,喜欢高质量且优秀的设计,致力于打造提升生活品质的好物。"

当用户想把剪贴板的内容提取出来时,一般会明确点击一个按钮,比如粘贴。当检测到粘贴按钮被点按时,程序员会用这样一段代码把剪贴板中的文字提取出来,并放在文本框中。实现代码如下:textfield.text = UIPasteboard.general.string。这本一直风平浪静,直到 iOS 14 新增了一个功能,当应用程序从剪贴板粘贴出内容时发出提醒,如下图中,我点击粘贴按钮后出现此提示。

这个提醒的用途,便是明确告诉用户,哪一个应用,在这个时间里获取了你的剪贴板中的内容。于是乎一些在不正常时间,没有明确理由,非用户操作便访问用户剪贴板数据的应用就暴露出来了。这次曝光的应用偷窃剪贴板信息有如下两种情况:

第一种情况:以抖音为代表的,在用户输入时粘贴剪贴板信息。有些人在这里感到困惑,认为抖音是在监听用户正在输入的内容,实则不然。抖音是使用了文字编辑通知 textFieldDidEndEditing(_:) 这个文本框自带的通知功能,在用户编辑的文字变更时,将剪贴板的文字复制出去了。具体表现就是下图中的每输入一个字便会触发一次剪贴板粘贴。

第二种情况:是以主流应用为代表的,每次切换应用时进行监听。这类的剪贴板监听是在应用程序变成前台应用时触发。即开发者使用了应用进入前台通知 didBecomeActiveNotification 这个函数时。在每次该应用变为前台应用时,窃取剪贴板信息。

讲了这么多你也许会好奇,粘贴出来的文字去哪里了呢?为什么要盗窃剪贴板信息?本文的后半段,我们从开发者,设计者和广告联盟的角度来讨论信息可能的去处。注意:我不对以上两种情况对号入座,大家可以自行判断。

开发者的角度:经过这几天我对开发者群体吐槽的观察,确实存在开发者编码不严谨导致误触发这个提醒的无心之失。这些开发者想要贴板中是否有内容,于是用了先粘贴出来的方法,然后判断粘贴出的东西是否为空,最后决定是否需要执行某些操作。这种情况没有任何信息的泄漏,纯粹是开发者对框架不熟悉所致。正确的方法是用 .hasStrings 来直接询问剪贴板中是否有内容,即不会侵犯用户隐私,也不需要粘贴内容出来。

产品设计者的角度:在产品规划之初,设计产品的人都会被要求做一些潜在客户的画像。下图的中的小哥,这些画像是对产品潜在典型用户的描述。比如你设计了一款帮助艺术家找工作的软件,客户画像可能就是刚毕业的大学生,25 岁左右,喜欢静物写生这样的。

这类客户画像本不应涉及任何隐私问题,直到部分动了邪念的软件开发商开始思考一个深入灵魂的问题:如果我们用用户的真实信息来做用户画像怎么样?我们对用户了解的越多,就越可能知道他的喜好,建立更真实的用户数据库。明着问用户要他们肯定不给,那就悄悄的来,去偷用户的输入法内容,去偷用户的剪贴板。

在 iOS 端, Apple 鼓励大家用自带的输入法来防止输入法内容被偷。不幸的是,这类明着偷用户剪贴板内容的行为,曾经没有任何办法禁止,甚至无法去判断厂商曾经偷了这些信息去做什么。这些数据大多是直接传回厂家自己的服务器,之后做了什么无从得知。因此应用商店审核流程对此类隐私泄露毫无办法。

更可悲的事实是,当你登录一个软件后,硬件提供商苦心设计的所有为了保护你的隐私的方法都什么用了。这些保护隐私的措施是建立在尽可能混淆你的身份,让别人看不出你的基础之上。当你登录后,便等同于自己出示身份证,来帮助此应用的尝试建立对你的用户分析的数据库。这些数据库大多数时候都被用作一个很朴实,却又特别吸金的事情上:广告。

广告联盟的角度:在过去,你也许会担心某个应用程序偷走了你的信息。但现在,你手机中的许多应用程序都有了统一的主脑,这就是广告联盟。

在软件开发过程中,开发者几乎都会用一些别的已经写好的模块添加进自己的程序中。我们把这个流程叫做「避免重新开发车轮」。而这些模块的提供者,很多都是巨头,比如脸书。每个使用这些模块软件,就不得不默认授权了你的部分隐私被大公司拿走。无论 Android ,iOS,都一样,无法避免。

这就是大家为什么会发现,我明明没用这个软件查询这些内容,为什么其他广告公司也知道我的信息了呢?这往往不是软件的原开发者泄露的你的信息,而是这些第三方模块的拥有者在倒卖这些信息。还记的上个月有个新闻,脸书的一键登录出了故障,所有内嵌脸书登录选项的应用都同时出现了闪退的情况。即便你没有使用脸书登录,脸书的代码也依旧在后台执行了。使用了广告联盟模块的软件往往会出现非常一致的行为,特别像上文中的一种情况。

你的详细信息,可以被与你无关的人随意选择。为了让你广告联盟了解你的程度有一个感知,我截取了 Google 广告联盟中广告主可以选择的用户范围。做为广告主,可以选择用户的所在地,婚姻状况,有几个孩子,受教育程度,平时喜欢浏览产品的类别,喜欢访问什么类型的网站,收入水平,兴趣爱好。它对你的了解之深,甚至可以精确到上一秒,你讨论了什么话题。

可能你自己都没意识到:

曾经家里来了贼,悄无声息的,偷走了你的隐私。

> 下载少数派 客户端 、关注 少数派公众号 ,了解更妙的数字生活 🍃

> 想申请成为少数派作者?冲!