数据与隐私¶
本文说明 Cocos Creator SDK 在 RUM、Log、Trace 和 Session Replay 中可能涉及的敏感数据边界。
基本原则¶
- 只采集定位性能与稳定性问题所需的数据。
- 不采集密码、验证码、Token、完整身份证件号码、银行卡号等敏感信息。
- 测试环境开启自动采集后,先检查实际上报内容,再决定生产配置。
- 自定义标签、日志和手动 Resource Body 均由业务负责脱敏。
Session Replay¶
默认规则¶
- 所有
EditBox节点默认使用mask。 - 重复帧和正在处理中的帧会被跳过。
- 截帧在进入 Native Bridge 前应用节点矩形遮罩。
自定义节点¶
guanceSdk.replay.setPrivacy(passwordPanel, 'hide');
guanceSdk.replay.setPrivacy(playerName, 'mask');
mask 使用遮罩色覆盖区域,hide 使用纯色隐藏区域。
遮罩边界
节点隐私区域根据世界坐标包围盒计算。Shader、粒子、RenderTexture、自定义绘制、超出包围盒的内容和其他 Camera 画面不一定被覆盖。应在真机逐场景检查重放结果。
当前 maskInputs 是兼容保留字段,设置为 false 不会取消 EditBox 默认遮罩。
网络数据¶
开启 autoTrack.network 后会采集 URL、请求头、响应头、HTTP 方法和状态码。
需要重点检查:
- URL Query 中的账号、Token 或业务 ID;
Authorization、Cookie 和自定义认证请求头;- 响应头中的用户或租户信息。
当前 Cocos API 不提供 URL 或 Header 过滤回调。如果网络协议包含敏感字段,应关闭自动网络采集,并只对允许的请求使用手动 Resource 与 Trace API。
自动网络采集不读取请求 Body 和响应 Body。手动 addResource() 的 responseBody 会按业务传入内容处理,应默认不传,确有排查需要时先脱敏和截断。
Log 与 Console¶
autoTrack.console 会把 Console 参数转换为文本,可能包含:
- 调试 Token;
- 完整接口对象;
- 用户输入;
- 账号与设备标识;
- 异常对象中的业务数据。
生产环境建议保持 console: false,使用 guanceSdk.logger.log() 上报经过筛选的内容。
不要把敏感对象直接放入日志 attributes。对象会被 JSON 序列化后进入日志数据。
Error¶
Error Message 和 Stack 可能包含:
- URL;
- 文件路径;
- 用户输入;
- 业务对象的字符串结果。
手动调用 addError() 前应清理消息、堆栈和属性中的敏感值。自动错误监听无法提供脱敏回调;如果应用异常内容不可控,可以关闭 autoTrack.errors,在业务错误边界中脱敏后手动上报。
用户与自定义标签¶
userId建议使用内部不可逆标识,不使用手机号或邮箱作为 ID。userEmail只有业务确实需要时才传入。extra与所有globalContext只添加低敏感、稳定、可用于筛选的标签。- 不把高基数字段或每次请求都变化的内容设置为全局标签。
Trace Header¶
Trace Header 只应注入信任的业务域名。第三方域名可能接收到 Trace 标识,从而暴露内部追踪关系。自动网络追踪无法按域名过滤时,应改用 trace.getHeaders() 手动控制注入范围。
发布前检查¶
- 在真机覆盖登录、支付、聊天、账号设置等敏感场景。
- 检查 RUM Resource 的 URL 与 Header。
- 检查 Error Message、Stack 和自定义属性。
- 检查 Console 和自定义日志。
- 回放 Session Replay,确认输入框和自定义敏感区域已遮罩。
- 检查 Trace Header 只发送到允许的域名。