开发者在开发软件的过程中,会用到许多第三方提供的现有功能,或设备厂商提供的现有功能。这次舆论中心的全局剪贴板其实是 Apple 开发者组件中的一个常用类别:UIPasteboard
为什么剪贴板是所有应用通用的呢?其实这也好说,剪贴板的作用其实就是临时存储图片或文字,以便用户在跨设备,或者跨应用粘贴时迅速提取到已复制好的内容。因此有必要设计成所有应用程序都可以轻易将内容存进去,或者取出来。
正常来说,开发者将图片和文字复制后,这些内容就会进剪贴板里。以下图中的文字为例,当我们点击复制按钮时,这段文字便会存入剪贴版中。实现代码如下:UIPasteboard.general.string = "不平庸,喜欢高质量且优秀的设计,致力于打造提升生活品质的好物。"
当用户想把剪贴板的内容提取出来时,一般会明确点击一个按钮,比如粘贴。当检测到粘贴按钮被点按时,程序员会用这样一段代码把剪贴板中的文字提取出来,并放在文本框中。实现代码如下:textfield.text = UIPasteboard.general.string。这本一直风平浪静,直到 iOS 14 新增了一个功能,当应用程序从剪贴板粘贴出内容时发出提醒,如下图中,我点击粘贴按钮后出现此提示。
这个提醒的用途,便是明确告诉用户,哪一个应用,在这个时间里获取了你的剪贴板中的内容。于是乎一些在不正常时间,没有明确理由,非用户操作便访问用户剪贴板数据的应用就暴露出来了。这次曝光的应用偷窃剪贴板信息有如下两种情况:
第一种情况:以抖音为代表的,在用户输入时粘贴剪贴板信息。有些人在这里感到困惑,认为抖音是在监听用户正在输入的内容,实则不然。抖音是使用了文字编辑通知 textFieldDidEndEditing (_:) 这个文本框自带的通知功能,在用户编辑的文字变更时。将剪贴板的文字复制出去了。具体表现就是下图中的每输入一个字便会触发一次剪贴板粘贴。
第二种情况:是以主流应用为代表的,每次切换应用时进行监听。这类的剪贴板监听是在应用程序变成前台应用时触发。即开发者使用了应用进入前台通知 didBecomeActiveNotification 这个函数时。在每次该应用变为前台应用时,窃取剪贴板信息。
讲了这么多你也许会好奇,粘贴出来的文字去哪里了呢?为什么要盗窃剪贴板信息?本文的后半段,我们从开发者,设计者和广告联盟的角度来讨论信息可能的去处。注意:我不对以上两种情况对号入座,大家可以自行判断。
开发者的角度:经过这几天我对开发者群体吐槽的观察,确实存在开发者编码不严谨导致误触发这个提醒的无心之失。这些开发者想要贴板中是否有内容,于是用了先粘贴出来的方法,然后判断粘贴出的东西是否为空,最后决定是否需要执行某些操作。这种情况没有任何信息的泄漏,纯粹是开发者对框架不熟悉所致。正确的方法是用 .hasStrings 来直接询问剪贴板中是否有内容,即不会侵犯用户隐私,也不需要粘贴内容出来。
产品设计者的角度:在产品规划之初,设计产品的人都会被要求做一些潜在客户的画像。下图的中的小哥,这些画像是对产品潜在典型用户的描述。比如你设计了一款帮助艺术家找工作的软件,客户画像可能就是刚毕业的大学生,25 岁左右,喜欢静物写生这样的。
这类客户画像本不应涉及任何隐私问题,直到部分动了邪念的软件开发商开始思考一个深入灵魂的问题:如果我们用用户的真实信息来做用户画像怎么样?我们对用户了解的越多,就越可能知道他的喜好,建立更真实的用户数据库。明着问用户要他们肯定不给,那就悄悄的来,去偷用户的输入法内容,去偷用户的剪贴板。
在 iOS 端, Apple 鼓励大家用自带的输入法来防止输入法内容被偷。不幸的是,这类明着偷用户剪贴板内容的行为,曾经没有任何办法禁止,甚至无法去判断厂商曾经偷了这些信息去做什么。这些数据大多是直接传回厂家自己的服务器,之后做了什么无从得知。因此应用商店审核流程对此类隐私泄露毫无办法。
更可悲的事实是,当你登录一个软件后,硬件提供商苦心设计的所有为了保护你的隐私的方法都什么用了。这些保护隐私的措施是建立在尽可能混淆你的身份,让别人看不出你的基础之上。当你登录后,便等同于自己出示身份证,来帮助此应用的尝试建立对你的用户分析的数据库。这些数据库大多数时候都被用作一个很朴实,却又特别吸金的事情上:广告。
广告联盟的角度:在过去,你也许会担心某个应用程序偷走了你的信息。但现在,你手机中的许多应用程序都有了统一的主脑,这就是广告联盟。
在软件开发过程中,开发者几乎都会用一些别的已经写好的模块添加进自己的程序中。我们把这个流程叫做「避免重新开发车轮」。而这些模块的提供者,很多都是巨头,比如脸书。每个使用这些模块软件,就不得不默认授权了你的部分隐私被大公司拿走。无论 Android ,iOS,都一样,无法避免。
这就是大家为什么会发现,我明明没用这个软件查询这些内容,为什么其他广告公司也知道我的信息了呢?这往往不是软件的原开发者泄露的你的信息,而是这些第三方模块的拥有者在倒卖这些信息。还记的上个月有个新闻,脸书的一键登录出了故障,所有内嵌脸书登录选项的应用都同时出现了闪退的情况。即便你没有使用脸书登录,脸书的代码也依旧在后台执行了。使用了广告联盟模块的软件往往会出现非常一致的行为,特别像上文中的一种情况。
你的详细信息,可以被与你无关的人随意选择。为了让你广告联盟了解你的程度有一个感知,我截取了 Google 广告联盟中广告主可以选择的用户范围。做为广告主,可以选择用户的所在地。婚姻状况,有几个孩子,受教育程度,平时喜欢浏览产品的类别,喜欢访问什么类型的网站,收入水平,兴趣爱好。它对你的了解之深,甚至可以精确到上一秒,你讨论了什么话题。
可能你自己都没意识到:
曾经家里来了贼,悄无声息的,偷走了你的隐私。
以上就是为什么分享抖音的时候会有粘贴板的详细内容,更多为什么分享抖音的时候会有粘贴板呢内容请关注鼎品软件其它相关文章!