本报记者 李玉洋 上海报道
吴清 近日,有网友发布视频称,在得物App购买商品后发现存在问题,于是拍摄视频准备反馈给得物官方,却收到来自华为手机“得物App删除了视频,已成功拦截”的系统通知。
App竟“动手”删除手机里的文件,这刺痛了广大用户个人信息保护的神经。对于“有没有删掉视频”这个疑问,得物需要给用户们一个解释。
根据得物两份公开说明,得物方面表示,已第一时间联系用户和手机厂商进行核查。经内部团队核实,平台从未删除用户手机相册中的“原视频”,删除的是临时“缓存文件”,用户所使用的华为手机系统可能检测到了得物App对临时缓存文件的处理,触发了系统拦截通知。
对于得物相关说明,以及与上述网友、手机厂商最新的沟通情况,《中国经营报》记者联系采访得物方面,其回应称,近期已对App进行优化、更新,类似情况今后应该不会再出现。记者注意到,此前包括豆瓣、小红书等App都曾传出过类似情况,最后判定结果都为App清理系统缓存,为手机系统误报。
针对此类情况,民间互联网安全组织网络尖刀创始人曲子龙对记者表示,这其实是一个开发不规范的问题,App开发人员可以通过规范开发来避免这种误解。
定向删除视频“没必要”
在视频中,上述网友表示得物App涉嫌通过调用用户手机权限,删除手机里与问题货物相关的视频。“删了两条视频,其中一条是开箱确定商品是有问题的,另一条是去专柜做对比的。”该网友称想要得物给出一个说法。
据了解,得物App拥有“假货举证”功能,用户可以通过该功能进行相关申诉。“用户举证假货要从App内完成举证,举证无论上传视频还是照片,都需要获取相册权限,否则根本没办法上传。”曲子龙表示,得物App获取了手机相册的操作权限,因为不只是安装过程会获取相册权限,逻辑上无论从“免费鉴别”“上传头像”“实名认证”“社区动态”“拍摄图片”“拍照搜商品”等功能都会涉及到获取相册功能,任何一种操作都会触发“获取相册权限”的提醒,而拒绝哪一次都无法正常使用这些功能。
从这种角度来看,用户想要使用App的某些功能,就得同意把相册等手机权限授予给App。那么从技术实现角度来说,App获得相册权限后是否就能定向删除某个视频?得物的声明显示,对于用户海量的视频数据,得物方面没有相应技术能力进行批量识别,甚至定向删除。
对此,曲子龙表示:“相册权限分为‘只读’和‘读写’权限,在开发过程中授权流程是一致的,大部分开发者为了方便,默认都是获取读写权限,免费鉴别、拍摄图片、拍照搜商品这些功能都需要调用相机拍照,而拍完照要存储,所以可以辅助证明App拥有完整的读写权限。”
“既然是完整读写权限,则App拥有相册内容的删除权限。”曲子龙认为,在用户进行了App的视频上传后,App厂商就已经根据用户上传的内容获取到了该文件的文件名、哈希值,“纯技术探讨的前提下,既然是一个已知文件,又是用于用户举证的工单流程环节,App本身都会通过IMEl(国际移动设备识别码)和用户手机号给用户建档,在已经拥有该App相册完整读写权限、且APP在运行状态下,定向去找到某个用户的某个手机上的文件,把它删除掉并不是复杂的技术问题”。
虽然从技术上来说定向删除视频并不是难题,但问题是App运营方一般不会冒着违法的风险去操作。“《民法典》第一千零三十五条规定处理个人信息的,应当遵循合法、正当、必要原则,不得过度处理;《个人信息保护法》第五条规定处理个人信息应当遵循合法、正当、必要和诚信原则,不得通过误导、欺诈、胁迫等方式处理个人信息。”上海汉盛律师事务所高级合伙人李旻律师告诉记者,个人信息处理者在处理信息前需要基于用户同意等法定原因,且需要充分告知用户数据处理的目的和方式等信息,确保其知情权。如果App擅自删除用户手机视频,则不符合法律规定,也有违诚实信用原则,涉嫌侵害了公民的隐私权和财产权,公民有权提起诉讼或进行维权。
记者注意到,在声明中,得物方面也表示“完全没有任何动力去做删除用户相册等不合规的行为”;曲子龙也认为用户完全可以用系统原生相机再拍一遍证据,找第三方机构鉴定后再去相关部门投诉,App厂商确实没有必要干这么蠢的事情。
规范开发可避免
在另外一份声明中,得物方面称App删除的是为避免占用用户手机空间的临时缓存文件,并非用户手机内的原视频。
“用户在App中编辑、处理、上传视频过程中,系统生成临时缓存文件,上传成功后清除缓存。该用户手机系统检测到得物临时缓存文件的处理,触发了系统拦截通知。”得物声明中还指出,App为了缩短编辑视频用户等待时间、避免影响原用户视频,采取临时缓存文件方案,该方案也是行业各大知名App进行视频处理的通用方案。
记者也注意到,类似事件也发生在国内多家互联网厂商的产品上,豆瓣、拼多多等知名App均曾被手机系统检测到删除照片或视频。比如,去年10月,豆瓣对“个别用户反馈华为手机提示豆瓣删除图片”发表说明,称当用户处于网络较差的环境时,系统认为帖子页同时发送多个带图回复,会导致误将用户上传的图片当成缓存文件删除。
2021年1月,网友联系拼多多客服上传了相关截图,结果和客服结束对话后不久,其手机收到了“检测到‘拼多多’已删除照片或视频”的vivo服务提醒。拼多多当时回应称,当用户在App的客服聊天页面点击“拍摄”并完成拍照后,立刻点击发送,这一图片就会被保存至系统相册;如果用户对照片做剪辑、美化等编辑操作,App会保存一张拍完的图片到系统相册,类似于缓存,待用户完成编辑和发送后,App会删除原图,保留编辑后的图片,这一举动导致了vivo系统认为有删除图片的操作。
从具体技术角度来说,是什么导致了删除App缓存文件而触发了手机系统拦截提示功能(即手机系统误报)?
曲子龙表示:“App开发过程中对于文件缓存其实是可以选择存放位置的,正常开发会有两种存放位置:一是在自己的App目录下创建缓存文件,二是到用户相册这个目录创建。App删除自己App目录下的文件,对于系统来说肯定风险等级低于删除用户相册里文件的操作,所以正常情况下,App开发者都是建议把缓存文件存入到自己的App目录下来避免此类‘尴尬’,这是一个很常规的开发技巧。”
“如果把缓存文件保存到用户相册再操作删除,他们所陈述的缓存删除逻辑触发了手机厂商的相关风险提示,确实从技术上成立。”曲子龙补充道。
那么,要如何更好地避免这种误解?曲子龙表示:“iOS和安卓的开发环境不同。相比iOS的沙盒机制,对于安卓来说,系统相册其实是手机厂商通过系统自带的MediaProvider收集整理的聚合结果,所以即便是在自己的App目录下创建文件夹,也会被MediaProvider索引到。”
也就是说,App创建的临时缓存文件(包括视频、图片等)也包含在系统相册中。“这时候就需要‘。nomedia’,从字面就能看出来no(不是)media(媒体文件)就等于这不是媒体文件,只要把‘。nomedia’文件放在任何一个文件夹下,都会把该文件夹下所有媒体文件隐藏跳过MediaProvider不被扫描。”曲子龙指出,如果App规范开发在自己的App目录下创建一个缓存文件夹cache(缓存),里面再放一个“。nomedia”文件,就能避免手机系统的拦截提醒。
“作为一个安全从业者,说实话,国内主流厂商很多App的研发确实都没有遵循这样的开发规范,写代码的工程师也好,企业的管理人员也罢,建议还是多看看规范,注意一下这些问题。” 曲子龙说。