|
|
51CTO旗下网站
|
|
移动端
创建专栏

京东金融 App 被爆窃取用户隐私?可别又怪开源库!

用户对自己的隐私数据,也是越来越重视了,在新安装 App 的时候,也不是对授权框无脑的点同意,还是会认真看清楚是否符合 App 的属性。例如一个新闻类的 App 想要获取通讯录权限,这肯定是不合理的。

作者:张旸|2019-02-20 09:10

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

 

这两年,无论是国内还是国外,时不时的都会爆出了一些 App 窃取用户隐私的事件。

用户对自己的隐私数据,也是越来越重视了,在新安装 App 的时候,也不是对授权框无脑的点同意,还是会认真看清楚是否符合 App 的属性。例如一个新闻类的 App 想要获取通讯录权限,这肯定是不合理的。

1.

说到用户隐私,今天又有 App 出事儿了,事儿主是 京东金融 App。

***被微博网友 @瘦出的肋骨已经消失的大侠阿木 发现,京东金融 App,运行在后台的时候,会将用户截图复制到 App 的私有目录中。

视频内演示的步骤是这样的:

  1. 打开京东金融 App,Home 键回到桌面。
  2. 打开招商银行 App,随便找个页面截图。
  3. 从文件管理器中,找到京东金融的目录(android/data/com.jd.jdapp)。
  4. 在其中的 uil-images 目录下,可以找到步骤 2 中的截图文件。

是不是很神奇,无论京东金融拿用户截图有什么目的,在私有目录下存储用户截图这件事情,都是板上钉钉的事儿了。

视频的作者,在视频内举例打开的是招商银行 App,话术里也是在说金融,这类用户比较敏感的 App。

真实情况是,京东金融并没有对截图进行区分,哪怕用户是对王者荣耀进行截图,它依然会拷贝到自己的目录下面,这一点从功能上,是没有区分的。

2.

此事发生之后,京东金融团队反应也很快,立刻发微博解释,声称保存的截图,仅作为用户本地操作,用户不主动发送给客服,是不会无感知的将用户截图上传的,以此窃取用户隐私。在解释的同时,也同步下线了此功能。

官方的解释很长,大概意思就是,京东金融 App 内,有一个“图片助手”的小功能,主要是为了方便用户在截图后向客服反馈问题。

注意看右上角,在截图后,页面会有一个浮动的“图片助手”,可以帮用户快捷的反馈问题或者分享。这些就是常规的功能了,在很多 App 内都有类似的功能。

这个功能,主要是为了方便用户操作,真有问题反馈的时候也觉得很贴心。但是现在问题在于,别家的产品都是仅在 App 在前台运行时的截图,才会触发此功能。更重要的是,别家的产品也不会将截图拷贝到自己的私有目录下,这一点才是大家所关心的。

在这件事情上,京东金融***的两个问题在于:

  • 收集用户在京东金融 App 外的截图。
  • 将截图复制到京东金融 App 的私有目录下。

这两个问题,只要不同时发生,其实问题都不大,严重就严重在,它们同时发生了。

3.

到这里大家是不是好奇,京东金融为什么要将图片存储到私有目录下?实际上如果只是做“图片助手”去反馈问题这个功能,是不需要把文件存储到自己的私有目录下,这么做等于是给自己埋下了隐患。

我猜测应该是代码实现时候,没有考虑到这些细节。

知乎用户 @琴梨梨 通过反编译,根据目录 uil-images 这个字符串,一步步深挖,发现了真相,有兴趣研究细节的朋友,可以查看文末的引用连接。

首先说明一点,通过反编译京东金融 App,暂时没有发现截图存在上传操作。但是为什么会发生将图片拷贝到私有目录的事情呢?

简单来说,京东金融 App 中使用的图片加载库,还是老牌的 Android-Universal-Image-Loader。Image-Loader 这个库,已经好几年没有维护了,但是有很多 App 因为历史等原因,依然在使用它。

我们知道,图片库在加载图片的时候,都会对图片进行磁盘缓存,Image-Loader 也不例外,它将要显示的截图,缓存到了私有目录下。所以应该是“图片助手”,没有检测当前 App 是否在前台,只要有新的截图,就会触发它显示截图的缩略图,然后用 Image-Loader 去加载图片,最终导致 Image-Loader 去加载。

这又是一个开源库引发的血案,但是这一回,可真怨不得开源库了。人开源库的功能没问题,只是这个业务场景,应该需要特殊的配置,而不是使用通用的方式进行加载-缓存-显示。

4.

说回到京东金融的解释吧,我是信的。

在这个注重隐私的大环境下,要是真的是为了上传截图而做的功能,大概率也会考虑的更多,尽量做的更隐蔽一些。

多半就是一个无心之失,功能实现的时候,没有考虑到 App 在后台的场景,并且“错误”的使用 Image-Loader 导致图片被缓存到私有目录。你说开发者不知道 Image-Loader 会缓存图片吧?我是不信的。

要我说,问题就是出在整个流程中,各个岗位对用户隐私的不重视,导致大家都不会考虑可能的用户隐私的问题。在整个需求-开发-测试等环节中,检查清单中并没有考虑到用户隐私的问题。

有网友为此还编了段子,大家娱乐一下。


reference:视频原始微博:https://m.weibo.cn/1620589064/4340143953936952

京东解释微博:

https://m.weibo.cn/6072759159/4340364808456506

截图分析(一)- 知乎:

https://zhuanlan.zhihu.com/p/56875556

截图分析(二)- 知乎:

https://zhuanlan.zhihu.com/p/56877625

【本文为51CTO专栏作者“张旸”的原创稿件,转载请通过微信公众号联系作者获取授权】

戳这里,看该作者更多好文

【编辑推荐】

  1. 从大团队并肩作战到小团队带头冲锋,苏宁App插件化应用实践
  2. 京东金融以应用为中心的DevOps体系建设
  3. 5 亿开房记录,想卖 37万,你的隐私正在被贩卖!
  4. 是什么拖慢了你的 App 启动?干掉它!
  5. 从京东金融APP看有些中国人讲规矩
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢