反垃圾内容、第三方 SDK、用户画像,以及“心电感应”的广告。
作者丨光谱
这个功能一出,此前总是偷偷访问剪切板的 App 一下子就现形了。
根据独立开发者 Talal Bakry 和 Tommy Mysk 的研究整理,发现了至少53个应用具有这样的行为,除了 TikTok 之外还有《纽约时报》和《经济学人》的手机端、微博、AccuWeather、阿里巴巴的全球速卖通 (AliExpress) 等,涵盖社交网络、新闻客户端、游戏和电商等类型。
不过,最受人瞩目的就是字节跳动旗下的海外短视频软件 TikTok。
Emojipedia 创始人Jeremy Burge 上传的视频显示,每当他在 TikTok 的评论文本框里输入文字的时候,会一直不停弹出 TikTok 读取剪贴板的通知:
一下子,这条新闻就在开发者和 iOS 用户圈子里掀起了不小的舆论风波。
需要明确的是,此前苹果一直允许前台的应用静默读取剪贴板内容,只是从 iOS 14 预览版开始,才会进行明显的提示。很多用户也是有这些提示第一次明确意识到,自己每天使用的应用会“偷偷”读取剪贴板里的内容。再加上 TikTok 的那段视频,一度让人误会 TikTok 在监听自己输入的内容。
TikTok 真的在这样做吗?这些应用为什么要读取剪贴板内容?背后到底玩的是什么把戏?
硅星人就此采访了 TikTok,以及其他多位资深 iOS 开发者,带你全面了解开发者正常读取以及滥用剪贴板的那些事。
TikTok 为何、如何使用剪贴板?
TikTok 发言人对硅星人表示,开发者之所以会在 iOS 14 预览版看到 TikTok 频繁读取剪贴板内容,实际上是因为 TikTok iOS 应用会通过调用剪贴板进行垃圾内容防御 (anti-spam)。
这个问题被公众发现之后,TikTok 已经在 App Store 发了新版,去掉了这一功能。
一位了解情况的员工对 TikTok 剪贴板反垃圾的工作机制进行了具体解释:
当用户在文本框输入时,应用会对用户剪贴板里是否存在内容,进行一个“是”或“否”判定。
如果答案是“是”的话,该用户在 TikTok 视频下方留下的评论,其权重就会降低,不会出现在留言的靠前位置。
TikTok 不会读取剪贴板里的具体内容,只会看剪贴板里是否有内容。
这个思路背后的逻辑是:认定那些在进入 TikTok 后剪贴板里仍有未清理内容的用户,其剪贴板内容是垃圾内容的可能性更大。
这是个一概而论的逻辑,甚至有些匪夷所思。
正常来讲,反垃圾内容的对象应该是用户提交的内容,而非保存在剪贴板里的内容。事实上,由于剪贴板功能设计,粘贴完成之后剪贴板里的内容依旧存在。正在读文章的你可以看一下,自己的剪贴板里是否有文字——如果用这个标准来判断垃圾内容,那误伤简直不要太多。
内容平台有很多其他更常见的反垃圾做法:绝大多数平台都会在服务器端进行反垃圾内容处理;在客户端本地,也可以检测文本框单位时间内是否输入了太多文字。这些都比 TikTok 整改之前的方法更有逻辑。
而且,该员工透露,这一功能并非由 TikTok 的反垃圾组开发,而是由另一个业务方向相近的团队负责。
不过可以确认的是,TikTok 并没有像很多人看了视频之后所担心的那样,在监听用户在文本框输入的内容。
这一说法得到了多位资深 iOS 开发者的支持。
知乎用户、iOS 开发教程作者王禹效告诉硅星人,当用户在 TikTok 内输入内容时,剪贴板调用的通知频繁出现,疑似因为调用了一个名叫 textFieldDidEndEditing(_:)的函数,也即“文本框输入结束”。
结果就是,当用户在 TikTok 的文本框输入文字,每次输入动作停止的时候,都会触发对剪贴板内容的调用。
至少两位资深 iOS 开发者认为,从视频里的应用行为来看,顶部弹窗通知只是代表读取了剪贴板里的内容而已,“有人以为这代表 TikTok 在监听用户打字,其实没有。只是在文本框输入文字的行为触发了读取剪贴板内容。”王禹效表示。
至少在这次事件当中,TikTok 没有人们指责的那么邪恶。整改之前的行为,最多影响了用户的使用体验,从代码的层面来看,也确实“滥用”了剪贴板权限,但没有证据证明它将剪贴板内容用于侵犯用户隐私l商业获利、。
据硅星人了解,TikTok 在去掉前述反垃圾内容的功能后,仍会继续在应用内保留调取剪贴板的功能,会在合法合规的原则上使用。不过 TikTok 暂未透露会具体的使用目的。
那么,调取剪贴板这件事,都有什么可能的使用目的?请继续往下读。
滥用剪贴板背后是什么把戏?
读取剪贴板内容是 iOS 平台允许的功能。多位受访的资深开发者和业内人士也表示,调取剪贴板确实是中美互联网行业的惯常做法。原则上,只要信息需要在应用之间传递,就可以调取剪贴板。 但是,像这一批被发现的应用,都是在没有获得用户许可的前提下嗅探剪贴板内容,以及 TikTok 这样的“极端案例”,似乎超出了苹果设计剪贴板的初衷,隐私方面存在争议。 王禹效认为,启动即调用剪贴板,按照合理猜测,可能有几类原因:程序写错了,用错了插件,错误调用了接口,(比如 TikTok 的情况,出于有意或者无意,都暂可算这一类);
开发过程中接入了一些常见的第三方功能,比如第三方账户登陆(如 Facebook、Twitter、微信、微博等),也就接入了这些功能对应的广告联盟。调取剪贴板的行为可能是这些第三方功能或广告联盟 SDK 导致的,一般来讲不属于开发者第一方的过错;
补完用户画像或提取关键词推送广告:这种做法就接近灰色产业的范畴了。结合上一类理由,应用完全可以提取剪贴板里的内容,通过第三方广告联盟,补足用户画像,从而更精确地推送广告。这也是为什么很多人经常感觉广告有“心电感应”的能力,明明没有在当前应用里输入有关内容,却也收到了关联度很高的广告。
知乎 iOS 开发话题优秀回答者、资深开发者 Bill Cheng 透露,在中文互联网的语境下,应用调取剪贴板一般有如下几种场景:
首先,应用之间的跳转,通常会通过剪贴板来实现。比如在第三方应用里选择通过微信进行登录,或者通过支付宝进行支付,此时嵌入在第三方应用里的微信和支付宝组件,会在跳转之前将一段数据放到 iOS 的系统剪贴板里,跳转之后再进行读取;
以及,一些应用,特别是某些阿里系和字节系应用,因为众所周知的原因,应用里的内容或链接无法通过微信进行分享,所以转而通过剪贴板实现。
独立开发者、macOS 剪贴板工具 FastClip 创始人沈寅告诉硅星人,大公司的应用重度使用剪贴板,主要是为了完成它自己的应用场景、优化体验:滥用剪贴板,终于该治一治了?
剪贴板调用的“中国互联网特色”的存在,长期来看并不是好事。一些新的玩法,已经从灰色转向黑色了。 去年双十一期间,有用户发现自己的搜狗输入法内置剪贴板里开始频繁出现未知的淘口令。 更夸张的是,搜狗输入法也内置了复制内容后提示的功能,打开了这个功能的用户,会频繁跳出“你刚刚复制了xxxx”的提示——尽管自己并未进行任何复制的动作。 在此前提之下,当用户打开淘宝、一淘之类的应用时,这些未知淘口令就会被调用、识别,进而触发锁佣红包的页面。一些用户不注意点击了之后,使用购物返利应用下单获得的返利,就进入了别人——未知淘口令的原主——的账户里。 有受访者对硅星人反应,在今年618购物节期间,搜狗输入法也出现了类似的情况。 关于这一情况,Bill Cheng 补充介绍,前几年支付宝做过一个吱口令的功能,其他人复制某用户的吱口令进入支付宝可以获得红包,三天内使用支付宝付款还可以让吱口令的原主获得返佣。 结果,在之后的一段时间里,很多移动网站的开发者动了歪心眼,通过网页 API 往剪贴板里填充吱口令,不仅会覆盖掉用户剪贴板里之前的内容,还会导致用户进入支付宝等应用时莫名其妙弹出窗口。 很明显,这些开发者的用意是大规模骗取返佣,而渠道正是通过剪贴板进行的,不仅简单,而且“合法“。 Bill Cheng 认为,调用剪贴板在 iOS 14 之前是一个灰色的地带,功能需求是存在的,对用户隐私的侵犯也没有那么被人关注,所以也没人质疑这种做法的合理性。iOS 14 的新提示框将调用剪贴板的动作暴露出来,在他看来是一件好事。 “应用在打开时随意读取剪贴板,是对用户隐私的一种侵犯。剪切板里面很有可能储存并不是分享的乱码字段,而是你的姓名、银行卡号、手机号甚至是密码。” 这部分信息很有可能随着剪贴板读取上传到应用的服务器上,和用户的账号绑定在一起,联系方式或财务信息就这样不知不觉泄漏了。 沈寅认为,上传用户剪贴板内容,确实可以提取到很多用户的隐私信息,在应用上是没有必要的,“不论这些应用有没有做剪贴板数据的收集或者分析,这种行为都会让用户很恐慌。作为一名剪贴板应用的开发者,个人的态度是必须把用户的隐私放在第一位。” Bill Cheng 指出,剪贴板作为用户行为操作的系统及工具,不应该被用在非用户行为的操作上。如果用户没有进行剪切复制粘贴操作,应用就不应该去读取剪贴板的内容,或者往里面写入内容。“别说当前存在隐私问题的剪贴板分享,就是跳转登陆,或者支付,都不应该使用剪贴板。”往期精彩文章推荐
长按关注
品玩官方公众号
科技创新者的每日必读