近两年,无论是国内还是国外,都会不时爆发一些APP窃取用户隐私的事件。用户越来越关注自己的隐私数据。在安装新的应用时,他们不会想都没想就同意授权框,而是会仔细检查是否符合应用的属性。比如一个新闻APP,获取通讯录权限肯定是不合理的。1、说到用户隐私,今天又一个APP出事了,受害者是京东金融APP。***微博网友@除出的骑士的大侠阿木发现,京东金融App在后台运行时,会将用户截图复制到App的私有目录中。视频中演示的操作步骤如下:打开京东金融APP,按Home键返回桌面。打开招商银行APP,任意页面截图。在文件管理器中,找到京东金融的目录(android/data/com.jd.jdapp)。在uil-images目录下,可以找到第2步的截图文件,是不是很神奇,不管京东金融对用户截图的目的是什么,将用户截图存放在私有目录中是板上钉钉的事.视频作者在视频中以打开招商银行App为例。在演讲中,他还谈到了金融,这是用户比较敏感的一个APP。真实情况是京东金融不区分截图。即使用户对王者荣耀进行了截图,依然会被复制到自己的目录下。在功能上没有区别。2、事件发生后,京东金融团队反应非常迅速,第一时间在微博上发文解释称,保存的截图仅供用户本地操作,用户不会无意识上传用户截图不主动发给客服。,窃取用户隐私。说明时,该功能同时也是离线的。官方解释很长。大概意思是京东金融App中有一个“图片助手”的小功能,主要是为了方便用户截图后向客服反馈问题。注意右上角。截屏之后,页面上会有浮动的“图片助手”,可以帮助用户快速反馈问题或分享。这些都是常规功能,在很多app中都有类似的功能。这个功能主要是为了方便用户操作,有问题反馈的时候也很贴心。但是现在的问题是其他产品只有在App在前台运行时截图才会触发这个功能。更重要的是,其他产品不会将截图复制到自己的私有目录中,这是大家比较关心的。在这件事上,京东金融最大的两个问题是:收集京东金融APP以外的用户截图。将截图复制到京东金融App的私有目录。这两个问题,只要不是同时发生,其实问题不大,严重的是同时发生。3、这里大家是不是很好奇,为什么京东金融会将图片存放在私有目录中?事实上,如果只是使用“图片助手”的功能来反馈问题,并不需要将文件存放在自己的私有目录中,这样做无异于给自己埋下了隐患。我猜应该是代码实现的时候没有考虑到这些细节。知乎用户@琴梨李通过反编译,根据目录下的字符串uil-images,一步步深挖,找到了真相,有兴趣研究细节的朋友可以查看文末的参考链接文章。首先,通过反编译京东金融App,发现没有对截图进行上传操作。但是为什么会发生将图片复制到私有目录的情况呢?简单来说,京东金融App使用的图片加载库还是老的Android-Universal-Image-Loader。Image-Loader库已经好几年没有维护了,但是由于历史等原因,很多应用仍然在使用它。我们知道,图片库在加载图片的时候,会将图片缓存在磁盘上,Image-Loader也不例外。它缓存要在私有目录中显示的屏幕截图。所以应该是“图片助手”。不检测当前App是否在前台。只要有新的截图,就会触发显示截图的缩略图,然后使用Image-Loader加载图片,最终会导致Image-Loader加载。这又是一个开源库的命案,但这一次,真的不能怪开源库了。开源库的功能没有问题,但是这个业务场景应该需要特殊配置,而不是通用的加载-缓存-展示。4、我们再回到京东金融的解释,我相信。在这个注重隐私的环境下,如果这个功能真的是上传截图的话,很有可能会被更多的考虑,并且尽可能的做的隐蔽一些。这很可能是一个无意的错误。功能实现时,没有考虑App在后台的场景,“错误”使用Image-Loader导致图片缓存到私有目录。你说开发者不知道Image-Loader会缓存图片?我不相信。在我看来,问题在于整个过程中,各个职位都不重视用户隐私,以至于没有人会考虑可能存在的用户隐私问题。在整个需求-开发-测试过程中,用户隐私不在清单中考虑。甚至有网友为此编了段子,供大家娱乐。参考:视频原微博:https://m.weibo.cn/1620589064/4340143953936952京东解释微博:https://m.weibo.cn/6072759159/4340364808456506截图分析(一)-知乎:https://zhuanlan。zhihu.com/p/56875556截图解析(二)-知乎:https://zhuanlan.zhihu.com/p/56877625【本文为专栏作者“张洋”原创稿件,转载请微信公众号联系作者获取授权】点此阅读作者更多好文
