目录
Docs / pacakge |

微信小程序隐私合规检测技术方法总结

微信小程序 隐私合规 源码审计 动态检测 整改复测

本文档总结微信小程序隐私合规检测的完整方法:工具、输入数据、检测流程、判定标准与输出物,可作为技术报告的方法论章节素材。


一、检测对象与方法总览

对微信小程序进行隐私合规检测,采用 “静态源码审计 + 动态行为采集 + 版本修复对比” 三结合方法,检测框架对齐工信部信管函〔2020〕164号 / 〔2023〕26号文的 “违规收集 / 超范围收集 / 违规使用 / 强制索取权限 / 自启动” 五大类检测项。

本次检测对象:

  • XX充换电小程序(v18 原版 → v19 整改版)
  • XX商城(v31 原版 → v32 整改版)

二、使用工具

工具 用途
wxapkg 解包脚本(Python 自编) 解析微信小程序安装包二进制格式(0xBE 魔数 + 索引区 + 数据区),提取 app-service.js、app-config.json、页面/组件/静态资源等全部源码文件
python-docx 以模板为底本原位生成报告(保留合并单元格、样式、章节结构)
正则 / 静态分析(Python) 对编译后的 app-service.js 定向提取:敏感 API、业务与第三方域名、隐私协议机制、缓存键、统计模块字段
微信开发者工具(检测方侧) 真机/工具运行采集动态行为,输出记录 API 调用时序、参数、网络请求 URL 的日志
Python 数据分析 解析动态行为日志:按行为类别分段统计调用次数、网络请求按域名归因、从本地统计缓冲还原上报参数、比对版本差异

三、输入数据

数据 说明
wxapkg 安装包(主包+分包) 微信小程序编译产物,需解包后才能获得源码
版本对应关系 必须说明哪个是原始版、哪个是整改修复版(如 _18 原版/_19 修复版;_31 原版/_32 修复版),否则无法做整改前后对比
动态行为采集数据 检测方生成的日志,含敏感 API 调用次数、发生时间、参数、网络请求完整 URL
原检测报告模板 用于对齐报告格式(如绿盟版式 docx)

四、检测流程

# @hl 1-2,9,13-15
① 解包 wxapkg → 提取全部源码(主包 + 分包)
② 静态源码审计
   ├─ 敏感 API 全量枚举(wx.* / uni.* / .index.*)
   ├─ 第三方域名/统计SDK 识别(如 tongji.dcloud.io)
   ├─ 隐私协议/同意机制核查
   │   ├─ 组件级:agreeprivacyauthorization / onNeedPrivacyAuthorization / openPrivacyContract
   │   └─ 逻辑级:isAgree / agreeProtocol 等同意状态的默认值(是否"默认勾选/默认同意")
   └─ 权限声明核查(requiredPrivateInfos / scope.userLocation)
③ 动态行为解析
   ├─ 行为类别 + 调用次数统计
   ├─ 时序分析(敏感 API 是否先于协议确认触发)
   └─ 网络请求按域名归因(自有服务器 / 第三方统计 / 微信平台行为)
④ 交叉定级 → 五大检测项结论(存在问题 / 未发现问题 / 不适用)
⑤ 按模板生成检测报告(docx)
⑥ 版本修复对比 → 逐项验证漏洞修复 → 生成"整改后复测版"报告

五、五大检测项判定要点

检测项 判定证据来源
违规收集个人信息 静态:协议同意默认值、隐私授权框架是否接入;动态:敏感 API 是否先于用户同意触发
超范围收集个人信息 单会话敏感 API 调用频次、是否捆绑采集(如统计模块顺带采位置)、是否有缓存/节流
违规使用个人信息 网络请求去向:是否发第三方统计平台、上报数据字段(设备信息/位置);隐私政策披露核验
强制频繁索取权限 声明的权限项数、动态是否触发权限弹窗、拒绝授权后是否强迫/反复弹窗
频繁自启动和关联启动 小程序场景不适用(运行于微信沙箱,无自启动能力);关联跳转(navigateToMiniProgram)是否用户主动触发

六、输出物

  1. 检测报告(按模板 docx,含基本信息、检测结论表、逐场景检测详情)
  2. 整改后复测版报告(含”整改前→后”对照表、复测结论、整改建议)
  3. 证据核对材料(针对存疑项的完整证据:请求地址/发生时间/请求参数/调用页面,用于向检测方核对)

七、本次实际结论

小程序 原版发现的问题 修复版复测结论
XX充换电小程序(v18→v19) 1.违规收集:定位先于协议确认
2.超范围:单会话频繁定位(12次)
3.违规使用:DCloud 统计采集位置并外发设备信息
全部修复:
接入 onNeedPrivacyAuthorization 隐私框架
+ 定位授权弹窗
+ requiredPrivateInfos 声明
+ 定位缓存节流
+ DCloud 上报链路整体移除(trackEvent 置空)
XX商城(v31→v32) 违规收集:登录页 isAgree 默认同意(手机号采集默认放行) 全部修复:isAgree 默认改 false(显式择入)+ 登录前置隐私检查 + 同意后恢复登录 + 移除手机号快捷登录

最终复测结论(两小程序一致):未发现问题 4 项 + 不适用 1 项,无遗留未修复漏洞。


本方法总结基于真实检测过程整理,供撰写技术报告参考。

100%