Skip to content

API 数据最小化与日志安全 ​

公开客户端会接触账号、访问码、记录、相片和机台状态。能够请求某项数据,不代表可以把它复制到日志、分析平台或聊天群。实现 API 时要把“能调用”和“能公开”分开。

数据分类 ​

类别示例默认处理
会话凭据Token、密码、访问码、二维码文本只放内存或受保护存储,不写日志
机台凭据授权码、私钥、敏感标识只交给授权维护人员
账号数据用户名、记录、成绩、相片只在本人/授权范围展示
配置数据配方值、代理、服务 JSON只显示当前可见部分,写入前备份
运行状态在线、磁盘、订单、网络摘要脱敏后用于排障
公共聚合地区统计、服务级计数仍需避免反推个人

日志红线 ​

以下字段不得进入普通日志、错误上报、浏览器控制台或截图:

  • token、密码、访问码和二维码文本;
  • 私钥、授权码和机台秘密;
  • 完整请求体和完整响应体;
  • 完整备份 JSON、服务 JSON 和 Hosts 内容;
  • 图片、原始记录和含个人信息的页面;
  • 能直接定位账号或机台的完整编号。

日志只保留脱敏别名、接口分类、状态码、耗时、业务结果和必要的错误消息。开发模式也必须遵守这条规则,不要依赖“本地不会上传”作为理由。

脱敏规则 ​

字符串凭据 ​

显示长度和前后少量字符即可:

text
原值:<SECRET_VALUE>
日志:<前2位>…<后2位>(长度:N)

对短值不要显示前后字符,直接记录“已提供/未提供”。二维码和访问码优先只记录哈希或随机追踪号。

账号与机台 ​

使用本地生成的稳定别名,例如 account-a、machine-b。不要把别名算法建立在真实编号、手机号或用户名上,避免从日志反推原值。

地址和路径 ​

只记录域名类别或路径模板,删除查询参数、凭据、完整本地路径和用户目录。服务 JSON 中的敏感值必须整体替换,不能只遮住一部分。

浏览器存储 ​

账号列表、Token 和本地导入导出文件应按照设备可信程度处理:

  • 个人设备可以保留本地条目,但要启用系统锁屏;
  • 公共设备使用后退出并清理站点数据;
  • 导出文件视为凭据,不放公开网盘或群文件;
  • 删除本地条目不等于删除服务端数据;
  • 清除浏览器图片缓存不等于删除服务端相片。

登录弹窗关闭后应清理临时二维码图片和识别中间结果;不要把二维码图片保存在下载目录太久。

传输与缓存 ​

使用 HTTPS 和受保护的 API 基础地址。客户端不要把 Token 放在 URL 查询参数、Referer、分析事件名或错误消息里。文件下载对象 URL 在使用后释放,避免敏感图片长期留在浏览器内存。

服务器返回的缓存、记录和相片只能保存到用户明确选择的受保护位置。缓存命中时仍要确认当前账号,不能把上一个账号的数据直接显示给新账号。

分享排障信息 ​

分享前逐项检查:

  1. 截图是否包含二维码、用户名、地址或现场人员;
  2. 日志是否包含请求体、完整 URL 或响应原文;
  3. 备份是否包含账号数据;
  4. 订单包是否包含路径、密钥或未公开内容;
  5. 时间、机台和账号是否可以被第三方关联。

只分享最小片段,并在问题关闭后删除临时副本。若必须交付原始文件,使用授权的加密传输渠道,不要粘贴到群聊。

数据删除与保留 ​

删除前区分三件事:

  • 浏览器缓存清理:只影响本地显示;
  • 本地账号条目删除:只影响当前设备的登录入口;
  • 服务端相片、上传快照或缓存删除:可能不可逆。

删除服务端数据前先下载留档、确认目标名称并要求二次确认。操作超时后先重新读取列表,不能把删除请求自动重放。

第三方 SDK 与遥测 ​

如果客户端使用错误收集、统计或分析 SDK:

  • 默认关闭请求体和响应体采集;
  • 过滤 URL 查询参数和请求头;
  • 过滤表单字段名中包含凭据的条目;
  • 对图片、备份和记录禁止自动上传;
  • 文档中明确采集范围、保留时长和删除方式。

没有经过用户同意和授权的第三方,不应收到账号数据或机台状态。

安全事件 ​

如果怀疑凭据泄露:

  1. 停止继续使用泄露值;
  2. 通知账号所有者或管理员;
  3. 按要求失效、轮换或重新绑定;
  4. 删除聊天、下载目录和临时日志中的副本;
  5. 重新登录并做一次最小验收;
  6. 记录泄露范围和处理时间。

不要把泄露值再次贴给管理员“帮助确认”,也不要通过重复登录测试它是否还能用。

Released under the CC BY-NC-SA 4.0 License.