数据智能产业创新服务媒体

——聚焦数智 · 改变商业


《数据安全法》和《个人信息保护法》落地以后,用户隐私越来越被大家所重视。这不,最近微信又上了热搜,起因是有用户开启了iOS 15 的隐私新特性“记录App活动”,对所有App的隐私读取行为进行7天的监控,并使用App Privacy Insights对记录进行读取。

监控发现,微信在用户未主动激活App的情况下,在后台数次读取用户相册,每次读取时间长达1分钟。

对此,微信官方也给出了回应:

iOS系统为App开发者提供相册更新通知标准能力,相册发生内容更新时会通知到App,提醒App可以提前做准备,App的该准备行为会被记录成读取系统相册。

微信称,当用户授权微信可以读取“系统相册权限”的前提后,为便于用户在微信聊天中按“+”时可以快速发图,微信使用了该系统能力,使用户发送图片体验更快速流畅。上述行为均仅在手机本地完成,最新版本中我们将取消对该系统能力的使用,优化快速发图功能。

http://finance.sina.com.cn/tech/2021-10-08/doc-iktzscyx8557144.shtml

那么问题来了,微信到底是在后台悄悄读取相册,还是确实如官方回复所说,只是iOS的机制导致?

先说结论:

本次事件其实是iOS的系统机制造成的乌龙,iOS自己的接口,提示App做相册更新预观察,而这个行为被iOS记录成读取相册;

从测试结果来看,至少证明微信回应的是真实情况;

照片和聊天记录一样,存储在本地,要上传花费的代价太大,而且必然留下痕迹。

接下来我们一一拆解。首先,来验证一下微信官方说的这个“相册更新通知”能力是什么。

根据iOS官方文档:

https://developer.apple.com/documentation/photokit/phphotolibrary/observing_changes_in_the_photo_library/

在照片相关处理接口里专门有这一节:

这个接口干嘛用的呢,简单来说:

PHPhotoLibraryChangeObserver协议能让我们知道照片相册库中的改变。Photos会发送系统图片改变的消息,我们可以遵守PHPhotoLibraryChangeObserver协议,并通过 PHPhotoLibrary的registerChangeObserver方法将对象注册为观察者,时时接收照片改变的消息。

所以,确实是“iOS提供了这个相册更新通知的能力”没错,相册发生内容更新的时候会通知到 App,让App可以识别到改变的图片,实现原来需要扫描整个相册才能实现的功能。

关键在于,这个观察-通知的行为在iOS15里,被识别成了读取相册,就像是App一直在扫描相册一样。也就是说,iOS 15的隐私新特性“记录App活动”,把iOS自己的接口行为记录成了读取相册。

举个例子,比如用户晚上12:00退出微信,12:05分截了个图,或者拍了个照,然后就睡觉去了。半夜iOS可能会在CPU空闲期间,比如12:30唤醒微信,微信此时可以有几十秒的后台运行时间(这种后台唤醒机制叫background fetch,时机系统定,App无法控制);由于微信订阅了相册更新通知事件,系统会回调微信说相册有更新,同时记录微信在12:30访问了相册。

这个例子大体上还原了上述事件的整个过程。

抛开iOS自己的这个乌龙不说,微信为什么要用到这个能力呢?主要是为了实现这个功能:

刚截的图,或者刚编辑好的图片,进入微信对话框按”+”时,右下角会出现“你可能要发送的照片”,这个功能挺好用,至少对我来说,80%以上的发送图片,不用进入相册再选,直接通过这里就可以发出去。

然而这样一个简单的小功能,要实现起来可不容易。

打个比方,我要知道相册什么时候变化,也就是说,你有一张新产生或者编辑的图片,需要发送,难道我过一段时间就去扫描一遍相册,和上一个试点的相册清单比较一下吗?

这种方式,既要存储上次的相册信息,还要设置一个合理的扫描期限,设置多少才算好呢?

为了解决这类问题,软件开发里有一种设计模式叫做观察者模式。

举个栗子,我关了一群小白鼠在笼子里,但是笼子不太牢靠,有可能会被咬坏,那我就得加固。我想知道哪个笼子坏了,难道要定期巡视一遍吗,那不得累死,觉也睡不成了。

观察者模式,就是帮你雇佣一只猫,由猫来监视(观察)所有的笼子,当笼子被咬坏的时候,大叫一声通知你。

我们回过头来看iOS提供的这个PHPhotoLibraryChangeObserver,名字就是Observer,它就是一个观察者,通过观察相册是否发生改变,来实时的通知App。

有了这个接口,就可以很简单的实现上述功能了。

看到这里有人要说了,就算是使用了这个接口产生了这些相册读取记录,这也不能证明,微信没有趁着调用这个接口的时候,顺便扫描用户相册啊。

先来说说微信做这个事情有没有必要。

现在的摄像头像素越来越高了,屏幕分别率也越来越高了,意味着手机相机拍照和截屏的图片所占空间越来越大,再乘上数亿的活跃用户的量级……

我看了下我刚清理过的相册,约30MB,因为很久没换手机,空间吃紧,所以我这个相册绝对是很少很少的了,按这个大小乘以微信12.5亿的月活,大概是3.5PB,这几乎是一个最小值,因为相册几百MB甚至上G的大有人在。

也就是说,至少需要数十PB的存储来干这件事,还冒着违反刚实行的数据安全法,侵犯用户隐私被巨额罚款的风险,以及企业的声誉风险,为了什么?多分析一些图片,卖点广告?

其实要验证也很简单,要扫描相册,有两种做法,一是直接上传,在云端分析,这会产生巨大的流量;二是本地分析上传,这会产生极大的耗电量。

我自己实验了一下,拍了十几张照片放进相册,然后保持微信在前台。

吃了个饭,微信使用的流量和CPU使用时间都没有明显增加,我用了一上午微信,CPU才用了10分钟,基本都是发图或者放视频这些操作才会用到CPU渲染。

大家如果还有所怀疑,也可以自己实验一下。从我自己的测试结果来看,我认为微信没有扫描相册并上传。

虽然微信不会读取相册全部内容,但是不代表其他App不会读取,我们的相册,信息量还是非常丰富的。

各类的自拍且不说,注册各类平台时,通过OCR扫描的身份证、银行卡照片,几乎都会留在相册里,除非你主动清除。

所以,经常清理相册还是相当有必要的,相册内容被获取的危害,可以参考数据玩家以前的文章。

至于哪些App会扫相册,大家可以按照上文中提到的方法实验一下,以自行实验的结果为准,独立思考,独立判断。

❷ 创新服务企业榜

❸ 创新服务产品榜

❹ 最具投资价值榜

❺ 创新技术突破榜

条漫:《看过大佬们发的朋友圈之后,我相信:明天会更好!》

联系数据猿

北京区负责人:Summer

电话:18500447861(微信)

邮箱:summer@datayuan.cn

全国区总负责人:Yaphet

电话:18600591561(微信)

邮箱:yaphet@datayuan.cn

微信真的在后台频繁读取用户相册吗?相关推荐

  1. 在“后台反复读取用户相册”?微信回应:最新版本将取消

    昨日,有网友反映,iOS版微信.QQ.淘宝等多款App在后台反复读取用户相册. 根据用户描述,开启新版iOS 15的"隐私"功能有"记录APP活动",可以存储7 ...

  2. 美团、微信、淘宝“频繁定位”用户?iOS15升级后,App集体“沦陷”

    伴随着<数字安全法>的生效,<个人信息安全法>也将于11月1日正式施行,关于用户信息安全与互联网平台的信息获取边界依然存在讨论空间. 10月10日,有数码博主爆料称,在升级苹果 ...

  3. 微信在后台疯狂读取用户隐私?专家:乌龙!是苹果系统升级的锅...你怎么看?...

  4. ios 后台唤醒应用_苹果不用背锅了!微信被杀后台是因为“耍流氓”?用户该听谁的?...

    文 | 考拉科技馆 排版 | 考拉科技馆 原创文章,禁止转载,违者必究! 苹果表示不用背锅了.日前,苹果推送了最新的iOS 13.2系统,在升级到iOS 13.2系统后,很多果粉都在网上反映iOS 1 ...

  5. 干货,看微信小程序后台用户数据如何演变和递增

    这几天发现附近小程序又多了好几家,其中有普通小程序和门店小程序,把它们做一个对比,门店小程序更多的像一张名片,只有基本的企业名称.地址.营业时间.电话和门店照片,和普通小程序相比显得逊色许多.楼下的水 ...

  6. SpringBoot搭建微信公众号后台(一):消息接收与响应

    关注作者,更多动态实时掌握,微信公众号:隔壁的程序员 上一篇我们经过接口验证,已经可以与微信的服务器进行通信,错过的可以通过下面链接来进行回顾,这一篇就来实现一个基本的消息接收与响应. SpringB ...

  7. 微信小程序后台获取签名,裁剪并上传图片至阿里云oss

    微信小程序后台获取签名,裁剪并上传图片至阿里云oss 首先,设置微信开发者工具,选择校验合法域名,防止本地可应使用,线上报错问题: 其次,在微信公众平台–小程序开发,设置合法域名 Oss设置–> ...

  8. 技术小白用python搭建微信公众号后台

    其实既然你有做开发者模式的想法,那你肯定是有些基础的. 至少会学过一些基础的编程语言. 而读完本片文章,你理解后绝对可以自己开发(一些简单的)功能.不过需要注意的是,本文只是"授人以渔&qu ...

  9. 用ASP.NET读取QQ相册

    最近遇到要读取QQ相册的问题,所以自己诼磨了下,把读取相册的思路和代码写下来. 很多网站到图片链接都做了盗链处理.意思是如果你想在不是他的网站上引用图片就不会正确显示图片,而是一张其它的版权说明之类的 ...

最新文章

  1. fun函数是什么php,c语言fun函数有什么例题?
  2. python怎么读xlsx_用python读取xlsx文件
  3. linux进程--写时拷贝技术copy-on-write(七)
  4. VTK:模型之CappedSphere
  5. Cordova - 彻底搞定IOS编译!
  6. 【Java从入门到头秃专栏 7】语法篇(六) :Lambda表达式(->) 方法引用(::) stream流
  7. 真空压力变送器怎么样零点标定_恒压供水设备中液位变送器分类及工作原理
  8. Sharepoint学习笔记—Delegate Control--在Sharepoint页面添加jQuery
  9. Linux 吉祥物30岁了!“出道”30年,你对Linux了解多少?
  10. 端到端测试 VS 单元测试
  11. 小僧尽知他的备细出 水浒
  12. RH2288v3常用的知识
  13. 淘宝购物折扣秒杀分享群淘宝红包怎么抢
  14. Java实现QQ邮箱验证
  15. “二手”市场的困境:用户习惯培养阶段
  16. uniapp H5 二维码生成
  17. MGRE综合实验作业
  18. Win10家庭版怎么添加本地用户和组?
  19. 【Python】网络编程--解决粘包问题--简单版:
  20. Gridea 配置Gitalk 的异常:Error Bad credentials 和 Error Not Found

热门文章

  1. 基于Python实现的孤立词语音识别系统
  2. oracle 唯一约束 和 唯一索引
  3. glut linux 安装包,linux 下glut.h使用
  4. SEO优化 - robots协议
  5. SaaS应用价值存巨大争议
  6. PS中把图片白色背景变成透明的方法
  7. Matlab 从怀俄明大学上爬取探空数据
  8. HTML5响应式企业集团织梦模板,(自适应手机版)响应式企业集团通用类网站织梦模板 HTML5响应式大气通用企业织梦源码+PC+wap+利于SEO优化...
  9. java程序设计案例_Java程序设计案例教程
  10. 创建索引-资源正忙的解决方案及原理