产业气象站 手机剪贴板真的在窃取你的隐私吗?

你可能看到许多应用未经允许粘贴粘贴版内容的新闻 。 在讨论它们之前 , 我们先来看看什么是全局剪贴板 。
开发者在开发软件的过程中 , 会用到许多第三方提供的现有功能 , 或设备厂商提供的现有功能 。 这次舆论中心的全局剪贴板其实是Apple开发者组件中的一个常用类别:UIPasteboard
【产业气象站 手机剪贴板真的在窃取你的隐私吗?】
产业气象站 手机剪贴板真的在窃取你的隐私吗?
文章图片
为什么剪贴板是所有应用通用的呢?其实这也好说 , 剪贴板的作用其实就是临时存储图片或文字 , 以便用户在跨设备 , 或者跨应用粘贴时迅速提取到已复制好的内容 。 因此有必要设计成所有应用程序都可以轻易将内容存进去 , 或者取出来 。
正常来说 , 开发者将图片和文字复制后 , 这些内容就会进剪贴板里 。 以下图中的文字为例 , 当我们点击复制按钮时 , 这段文字便会存入剪贴版中 。 实现代码如下:UIPasteboard.general.string="不平庸 , 喜欢高质量且优秀的设计 , 致力于打造提升生活品质的好物 。 "
当用户想把剪贴板的内容提取出来时 , 一般会明确点击一个按钮 , 比如粘贴 。 当检测到粘贴按钮被点按时 , 程序员会用这样一段代码把剪贴板中的文字提取出来 , 并放在文本框中 。 实现代码如下:textfield.text=UIPasteboard.general.string 。 这本一直风平浪静 , 直到iOS14新增了一个功能 , 当应用程序从剪贴板粘贴出内容时发出提醒 , 如下图中 , 我点击粘贴按钮后出现此提示 。
这个提醒的用途 , 便是明确告诉用户 , 哪一个应用 , 在这个时间里获取了你的剪贴板中的内容 。 于是乎一些在不正常时间 , 没有明确理由 , 非用户操作便访问用户剪贴板数据的应用就暴露出来了 。 这次曝光的应用偷窃剪贴板信息有如下两种情况:
第一种情况:以抖音为代表的 , 在用户输入时粘贴剪贴板信息 。 有些人在这里感到困惑 , 认为抖音是在监听用户正在输入的内容 , 实则不然 。 抖音是使用了文字编辑通知textFieldDidEndEditing(_:)这个文本框自带的通知功能 , 在用户编辑的文字变更时 , 将剪贴板的文字复制出去了 。 具体表现就是下图中的每输入一个字便会触发一次剪贴板粘贴 。
产业气象站 手机剪贴板真的在窃取你的隐私吗?
文章图片
第二种情况:是以主流应用为代表的 , 每次切换应用时进行监听 。 这类的剪贴板监听是在应用程序变成前台应用时触发 。 即开发者使用了应用进入前台通知didBecomeActiveNotification这个函数时 。 在每次该应用变为前台应用时 , 窃取剪贴板信息 。
产业气象站 手机剪贴板真的在窃取你的隐私吗?
文章图片
讲了这么多你也许会好奇 , 粘贴出来的文字去哪里了呢?为什么要盗窃剪贴板信息?本文的后半段 , 我们从开发者 , 设计者和广告联盟的角度来讨论信息可能的去处 。 注意:我不对以上两种情况对号入座 , 大家可以自行判断 。
开发者的角度:经过这几天我对开发者群体吐槽的观察 , 确实存在开发者编码不严谨导致误触发这个提醒的无心之失 。 这些开发者想要贴板中是否有内容 , 于是用了先粘贴出来的方法 , 然后判断粘贴出的东西是否为空 , 最后决定是否需要执行某些操作 。 这种情况没有任何信息的泄漏 , 纯粹是开发者对框架不熟悉所致 。 正确的方法是用.hasStrings来直接询问剪贴板中是否有内容 , 即不会侵犯用户隐私 , 也不需要粘贴内容出来 。
产品设计者的角度:在产品规划之初 , 设计产品的人都会被要求做一些潜在客户的画像 。 下图的中的小哥 , 这些画像是对产品潜在典型用户的描述 。 比如你设计了一款帮助艺术家找工作的软件 , 客户画像可能就是刚毕业的大学生 , 25岁左右 , 喜欢静物写生这样的 。


推荐阅读