小程序用户个人信息安全研究

known 发布于 2025-08-25 阅读(382)

摘" 要:小程序作为一种简单便捷的移动应用形态,应用数量和用户量快速增长。与此同时,小程序存在的一些用户个人信息安全风险也逐渐凸显,如:非法获取、超范围收集、过度索取个人信息等,直接威胁移动终端用户权益,逐渐成为业界关注的焦点。文章从架构、代码和数据三个层面分析小程序用户个人信息安全风险,对问题存在的原因进行了剖析,并提出针对性的意见和建议,以期提升移动应用行业整体个人信息保护水平。

关键词:小程序;运行框架;数据处理流程;个人信息保护

中图分类号:TP309.2" " " 文献标识码:A" 文章编号:2096-4706(2024)21-0073-05

Research on Users Personal Information Security of Mini Program

SONG Kai1,2, LIU Tao1,2, YANG Mengke1,2, JIA Baoguo1,2

(1.Key Laboratory of Mobile Application Innovation and Governance Technology, Ministry of Industry and Information" Technology, Beijing" 100191, China; 2.CTTL Terminal Labs, China Academy of Information and Communications Technology, Beijing" 100191, China)

Abstract: As a simple and convenient form of mobile application, mini programs have a rapid increase in the number of applications and users. At the same time, some personal information security risks of users in mini programs are gradually becoming prominent, such as illegal acquisition, excessive collection, and excessive solicitation of personal information, which directly threaten the rights and interests of mobile terminal users and gradually become the focus of industry attention. This paper analyzes the personal information security risks of mini program users from three aspects of architecture, code, and data, analyzes the reasons why the problems exist, and proposes targeted opinions and suggestions to improve the overall level of personal information protection in the mobile application industry.

Keywords: mini program; operational framework; data processing process; personal information protection

0" 引" 言

随着移动互联网应用技术的快速发展,小程序凭借“无须下载、即搜即用,用完即走”的便捷特性,应用场景已涵盖民众日常生活的方方面面。在小程序迅猛发展给用户带来便利的同时,其存在的一些潜在安全风险也逐渐凸显。目前小程序开发者技术水平和用户个人信息保护意识参差不齐、部分小程序服务提供者并未依法落实个人信息保护义务,导致侵害用户个人信息权益的行为时有发生,因此亟须对小程序用户个人信息安全进行研究。本文主要通过对小程序基础架构和运行机制进行了解析,进一步分析了小程序用户个人信息收集、传输、处理的流程,并从架构、代码和数据三个层面对小程序用户个人信息安全风险及问题的根源进行分析,最后针对提升小程序用户个人信息保护能力提出措施建议。

1" 小程序基础架构和运行机制

为了方便开发者快速开发和发布小程序,并且保障小程序的安全和稳定运行,小程序提供了灵活的基础架构和运行机制。

1.1" 小程序基础架构

小程序基本遵循C/S架构,主要分为客户端和服务端两部分。客户端是指用户在手机端下载的小程序,运行在移动终端,主要由视图层(Web View)和逻辑层(Service)两部分组成[1]。服务端主要通过框架型应用提供的API接口与框架型应用服务器交互,实现小程序的登录、授权、数据传输和数据存储等功能。

在小程序中,视图层通常与逻辑层分离,如图1所示,主要通过小程序框架应用提供的API接口来实现数据的绑定和事件的处理[2]。视图层负责渲染小程序页面,包括Web组件和原生组件的展示,采用WXML、WXSS和JavaScript等技术实现混合渲染。例如,某些Web组件可能不被WebView支持或存在性能限制,因此小程序也需要依赖原生组件,例如地图、视频等组件。逻辑层是小程序的控制层,主要负责小程序中的逻辑处理、数据处理等工作,采用JavaScript Workers实现,可以调用框架型应用提供的API,与视图层实现交互。Worker负责小程序的事件处理、API调用和生命周期管理[3-4]。

小程序提供了丰富的API接口,如图2所示,覆盖了多种开发场景,包括界面路由、媒体获取、文件读写、数据缓存、网络请求、位置获取、设备信息获取、开放接口、小程序云开发和小程序插件等。其中,界面API包括了页面路由、交互反馈、导航栏控制、下拉刷新等;媒体API包括了获取、录制和播放图片、音频和视频等;文件API包括了读写、下载和上传文件等;数据缓存API包括了数据缓存和清除缓存等;网络API包括了发起HTTP请求和WebSocket等;位置API包括了获取当前位置、查看位置和选择位置等;设备API包括了获取系统信息、网络状态、电量、震动和剪贴板等;开放接口包括了登录、获取用户信息、支付、卡券和分享等;小程序云开发API包括了数据库、云函数和存储等;小程序插件API包括了调用和管理小程序插件等。开发者可以根据需要选择使用API接口。

类似于Android APK,小程序binary也打包在wxapkg格式的压缩文件中[5]。如图3所示,wxapgk通常包含:

1)一个名为app.json的配置JSON文件,该文件描述了小程序的一般功能(例如小程序运行所需的权限等)。

2)一个或多个包含资源文件(例如图像和音频)的文件夹。

3)一个或多个文件夹包含描述小程序UI或者业内称为Page的文件。特别地,页面Page由四个文件组成,包括:WXML文件,该文件由标记语言编写WXML,用于UI设计,如按钮或输入框;JavaScript文件,指定当用户与UI交互时需要执行的逻辑流程;级联使用WXSS格式编码样式表文件,指定如何显示UI元素;以及最后样式配置文件,指定UI的窗口行为(例如UI方向)。

1.2" 小程序运行机制

小程序的运行机制分为首次启动机制和热更新机制,如图4所示。以微信小程序为例,当用户第一次打开一个小程序时,小程序客户端会向小程序平台冷加载请求小程序的代码包、资源文件和配置信息,并将其缓存到本地。然后,客户端会使用本地缓存的代码包和资源文件渲染小程序的首页,展示给用户。此后,每次打开小程序时,客户端会检查本地缓存的代码包和资源文件是否过期,如果过期则会向平台请求最新的代码包和资源文件,否则直接使用本地缓存的文件渲染小程序[6]。

如果开发者在小程序平台上更新了小程序的代码包或资源文件,客户端会在后台下载最新的代码包和资源文件,并将其缓存到本地。当用户下次打开小程序时,客户端会使用最新的代码包和资源文件渲染小程序。如果更新过程中出现问题,客户端仍将使用之前缓存的版本。此外,小程序还支持热加载小程序页面、组件和插件等,从而实现更加灵活的热更新机制。

小程序从启动到最终被销毁,会经历很多不同的状态,小程序在不同状态下会有不同的表现。大致运行机制如图5所示,分为启动、挂起、销毁三个阶段[2]。

1.2.1" 小程序启动

通常来说,小程序启动可以分为两种情况,一种是冷启动,一种是热启动。如果用户首次打开,或者小程序销毁后被用户再次打开,此时小程序需要重新加载启动,就是冷启动。如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,加载速度比前者快不少,说明此时小程序并未被销毁,小程序还可以短暂运行一小段时间,但部分API的使用会受到限制,只是从后台状态进入前台状态,这个过程就是热启动。从小程序生命周期的角度看,一般讲的启动专指冷启动,热启动一般指后台切前台。

1.2.2" 小程序挂起

小程序进入后台状态一段时间后,框架应用会停止小程序JS线程的执行,小程序进入挂起状态。此时小程序的内存状态会被保留,但开发者代码执行会停止,事件和接口回调会在小程序再次进入前台时触发。如果开发者使用了后台音乐播放、后台地理位置等能力时,小程序仍可以在后台持续运行,不会进入挂起状态。

1.2.3" 小程序销毁

如果用户很久没有使用小程序,或者系统资源紧张,小程序会被销毁,即完全终止运行。具体而言包括以下几种情形:一是,当小程序进入后台并被挂起后,如果很长时间(目前是30分钟)都未再次进入前台,小程序就会被销毁。二是,当小程序占用系统资源过高,可能会被系统销毁或被客户端主动回收。比如在iOS上,当微信客户端在一定时间间隔内连续收到系统内存告警时,会根据一定的策略,主动销毁小程序,并提示用户“运行内存不足,请重新打开该小程序”。

2" 用户个人信息收集传输处理流程

小程序开发者在收集和处理用户个人信息时,需要遵守相关的法律法规和规范对用户的个人信息进行保护。一般而言,小程序用户个人信息的收集和处理流程如下。

如图6所示,在小程序中,开发者需要通过调用小程序客户端开放接口,向用户发起授权请求,获取用户信息。小程序首先会使用getStorageSync()函数判断本地缓存是否有当前用户信息,如果有相关信息,就会直接将缓存数据赋值给userInfo变量,如果没有相关信息,会调用wx.getUserProfile()函数来提示用户授权登录,授权成功后,会把获取到的用户头像地址和昵称数据保存到缓存区里,并且调用wx.login()函数获取登录凭证code,否则会调用wx.showToast()函数向用户提示未授权[7-8]。

在获取到用户信息后,小程序客户端会将数据从客户端上传至服务端。以微信小程序为例,如图7所示,微信小程序在传统的C/S网络架构的基础上利用动态语言和算法,突破客户端必须安装客户端服务软件的限制,完成客户端和服务端直接相连。这种点对点的连接方式最为突出的特点就是为小程序与服务器之间的数据交互提供了速度和安全的保障。

3" 用户个人信息收集使用面临的安全问题

小程序的迅猛发展,给用户带来便利的同时,也存在一些潜在的安全问题。目前,部分小程序服务提供者并未依法落实个人信息保护义务,侵害用户个人信息权益的行为时有发生,因此,通过以上对小程序基础框架和运行机制的分析,将主要从架构、代码和数据三个层面对小程序用户个人信息收集使用面临的主要问题进行总结。

3.1" 过度收集使用个人信息

由于小程序运营主体多为希望借助小程序生态实现业务经营线上化的各类实体企业、组织或个人,有些主体并不具备小程序的开发能力,因而存在采取外包公司开发的形式。部分主体甚至直接采用租用科技公司已开发小程序,仅通过变更账号主体名称的形式就上线了小程序,实际的管理、运营特别是数据处理和存储由外包公司控制。小程序运营者整体的用户个人信息保护意识显著弱于传统APP运营者,过度收集使用用户个人信息的情况较为突出。由于小程序开发者技术水平和用户个人信息保护意识参差不齐、部分小程序服务提供者并未依法落实个人信息保护义务,侵害用户个人信息权益的行为时有发生,主要表现行为包括以下几个方面:

1)未履行充分必要告知义务,部分小程序未制定隐私政策,也未通过其他显著方式向用户告知处理个人信息目的等信息。

2)小程序在获得系统授权后,超出向用户告知的目的,超范围收集语音、图片、通讯录信息,超频次收集设备识别码、应用软件列表信息、位置信息,或违规进行非授权操作,进行读写删等。

3)过度收集个人信息,部分小程序存在要求用户授权访问相机、麦克风、位置、通讯录等非必要且无合理运用场景的个人信息;强制收集用户个人信息,用户不授权登录或不提供个人信息,部分小程序拒绝提供服务。

4)违规使用用户个人信息,小程序通常是“一次授权,长期有效”,小程序对个人信息收集后的再利用很难被查知。这些操作严重违背了个人信息收集使用的合法、正当、必要原则。

3.2" 承诺与实际行为不一致

一般情况下,小程序需在隐私政策中承诺保护用户隐私和个人信息,但实际上小程序可能未采取有效措施保护用户隐私,或未按照承诺的方式使用用户个人信息。例如,小程序在未经用户授权的情况下收集用户个人信息,或将用户个人信息用于非法用途等。例如,Zhang等人设计了一个名为SPOChecker的框架对5 521个热门微信小程序的分析,发现半数以上的小程序没有给出隐私政策,其余的相当部分也存在过度收集的问题[9]。而Wang等人通过基于数据实体依赖图的污点分析,对小程序数据实践和政策描述进行合规性检测,在10万量级的小程序上开展实验,检出了高达89.4%的不一致比例。

这些工作充分说明,小程序作为一种新兴的应用形式,由于在代码结构、运行机制、个人信息获取方式等方面与APP具有明显差异,传统用于移动APP的个人信息保护检测方法无法直接应用,风险发现不及时、不全面、不准确等问题也一定程度上阻碍了小程序个人信息保护能力的提升。

3.3" 行为难追踪难确定

由于部分小程序账号与运营主体实质分离、数据收集处理行为难追踪等问题,客观上放大了数据泄露或滥用风险。小程序开发、账号运营、数据管理主体的不一致情况较为普遍,开发主体可能不负责小程序的运营和管理,而运营主体则可能不了解小程序的技术细节和数据管理情况,造成现实中既难以追踪客户个人隐私数据的实际存储方、处理方,更难以在数据泄露后界定相关主体的法律责任。由于不同小程序平台对小程序的底层架构、实现原理、通信机制等各个方面存在差异,难以对其进行统一的测试[10]。若小程序出现数据安全等问题,数据是否妥善储存、是否存在不当处理、是否被不当使用,是否泄漏给无关第三方,均难以确定或追踪,也难以追踪责任。

4" 意见和建议

随着国家对于个人信息保护重视程度的不断加强,相关法律体系逐步完善,《数据安全法》《个人信息保护法》和《消费者权益保护法》等相关法律法规均对个人信息保护进行了明确了规定,根据以上对小程序用户个人信息收集使用面临安全问题的分析,提出以下三点建议。

4.1" 建立并完善行业标准体系

现有国内外个人信息保护标准的规范对象主要是APP,而小程序作为一种新型应用形态,并没有专门针对小程序的个人信息保护标准。因此要坚持标准先行原则,进一步加强制定小程序系列标准。重点聚焦用户反映强烈的问题,如违规收集个人信息(账号、手机号、位置、图片等信息)、违规使用共享个人信息(与第三方APP、第三方小程序共享)、欺骗误导强迫用户下载、安装、使用其他小程序等,提出针对小程序的检测评估标准规范,建立相应的标准体系,以填补小程序标准方面的空白。

4.2" 突破并实现技术创新

目前国内外主要针对APP开展个人信息保护检测,因此已形成较成熟的APP检测技术和方法。但是由于APP和小程序的技术原理存在本质的不同,所以APP的隐私检测技术并不适用于基于小程序宿主平台开发、运行的小程序,针对小程序的隐私安全检测技术研究几乎空白。因此,亟须针对小程序本身的特性和生态环境,对小程序开展静态解析与代码分析方法研究、运行时敏感行为监测方法研究,构建小程序自动化检测模型,通过产品研发和系统建设,形成对小程序隐私安全进行一致性检测技术的能力,进而弥补现有检测技术的不足。

4.3" 规范并促进行业自律

目前国内外还未针对小程序开展行业自律规范,因此可以通过行业协会制定自律规范,鼓励小程序持续增开展技术创新,开发更加安全、便捷的个人信息处理技术,加强对用户个人信息的保护。同时要不断加强人才培养,提高对个人信息保护的意识和能力,引导行业健康发展,推动产业技术创新,促进行业自律和诚信经营,提高行业整体水平。

5" 结" 论

小程序作为一种新生事物,由于具有“部署灵活、运行轻量、研发简单”的特点,一经诞生就显露出强大的生命力,对移动应用的细分领域形成了较好的补充,作为移动互联网领域技术创新的新阵地,在未来势必获得更大的发展和应用。同时,移动应用小程序的个人信息保护测评和监管已经成为业内研究的热点,势必成为一个长期的课题,需要从技术创新、标准体系、监管规范多方面发力,企业、开发者、监管机构多方协作,切实提高小程序的个人信息保护水平,更好地规范整个行业的自律行为,从而促进整个行业持续、快速、健康地发展。

参考文献:

[1] 马涛.安卓平台的小程序安全性研究与实现 [D].北京:北京邮电大学,2021.

[2] 黄铄,林锴,戚耀中,等.微信小程序安全问题浅析 [J].数字通信世界,2023(5):81-83.

[3] 微信官方文档.小程序指南 [EB/OL].[2023-12-25].https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/.

[4] 支付宝文档中心.小程序开发框架概述 [EB/OL].[2023-12-26].https://opendocs.alipay.com/mini/framework/overview/.

[5] ZHANG Y,TURKISTANI B,YANG A Y Q,et al. A Measurement Study of Wechat Mini-Apps [C]//Proceedings of the ACM on Measurement and Analysis of Computing Systems.New York:ACM,2021,5(2):1-25.

[6] YANG Y Q,ZHANG Y,LIN Z Q. Cross Miniapp Request Forgery: Root Causes, Attacks, and Vulnerability Detection [C]//Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security (CCS22).Los Angeles:ACM,2022:3079-3092.

[7] LU H R,XING L Y,XIAO Y,et al. Demystifying Resource Management Risks in Emerging Mobile App-in-App Ecosystems [C]//Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security (CCS20).New York:ACM,2020:569-585.

[8] LEHR J-P,BISCHOF C,DEWALD F,et al. Tool-Supported Mini-App Extraction to Facilitate Program Analysis and Parallelization [C]//Proceedings of the 50th International Conference on Parallel Processing (ICPP21).New York:ACM,2021:1-10.

[9] ZHANG X H,WANG Y,ZHANG X,et al. Understanding Privacy Over-collection in WeChat Sub-app Ecosystem [J/OL].arXiv:2306.08391 [cs.CR].(2023-06-14).https://arxiv.org/abs/2306.08391.

[10] 黄子奇,顾语涵,张晓寒.MiniBot:轻量级小程序动态测试输入生成框架 [J/OL].小型微型计算机系统,2024:1-7(2024-04-18).http://kns.cnki.net/kcms/detail/21.1106.tp.20240416.1203.002.html.

作者简介:宋恺(1983—),男,汉族,北京人,中国信息通信研究院泰尔终端实验室信息安全部主任,硕士,研究方向:电信和互联网领域的监管与安全政策等;通信作者:刘陶(1984—),女,汉族,湖北荆门人,中国信息通信研究院泰尔终端实验室信息安全部副主任,高级工程师,博士,研究方向:移动应用安全、隐私保护、智能终端安全等;杨萌科(1997—),女,汉族,河南汝州人,工程师,硕士,研究方向:移动智能终端和应用安全等;贾宝国(1989—),男,汉族,山西阳泉人,工程师,硕士,研究方向:电信和互联网领域的监管与政策等。

标签:  程序 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor