# 安全声明(Security Policy) 本项目是一个**本机运行**的微信小号 AI 聊天分身插件。这份文档说明:数据存在哪里、会流向哪里、如何安全使用,以及发现安全问题怎么报告。 ## 1. 数据流与存储 | 数据 | 存放位置 | 是否离开本机 | |---|---|---| | 插件配置(含白名单、时段、预算、人格选择) | DSH profile 配置(本机) | 否 | | LLM API Key | DSH profile 配置(本机),不写入仓库 | 否(除非你自己提交了含 Key 的文件) | | 聊天记忆/摘要 | `/memory/`(本机) | 否 | | 审计日志 `audit.jsonl` | `/`(本机) | 否 | | 需要回复的消息内容、最近上下文、联系人偏好 | 发送给你配置的 **LLM 服务商** | **是**(这是模型回复的必要条件) | | 截图(调试用 `WXUIA_SHOT_DIR`) | 你指定的本机目录 | 否 | - 项目**不包含遥测、埋点、统计上报**。 - 仅处理白名单单聊;非白名单内容不写记忆、不进上下文。 - 转账/红包/验证码/密码等敏感话题由本地规则直接拦截,不送模型。 ## 2. 安全使用建议(务必遵守) 1. **只用自己的小号**,不要用主号;先手动观察一周再开自动回复。 2. 不要把 `dataDir`、`audit.jsonl`、截图目录、含 API Key 的配置文件提交到公开仓库或发给他人。 3. 仓库公开前运行 `git grep` 检查是否含真实好友名、wxid、手机号、路径用户名(项目自带检查见 `AGENTS.md`)。 4. 允许的最小权限:桌面通道需要操作 Windows 窗口与键鼠,运行插件时应让出键鼠(`userActivityIdleMs`),不要同时人工使用微信。 5. 不要在插件里配置他人账号、不要读取不属于自己的聊天记录。 6. 出现验证码/异常登录/限制提示,先人工处理微信,再恢复插件。 ## 3. 支持范围(受支持版本) | 版本 | 状态 | 安全修复 | |---|---|---| | `3.0.0-beta.1` | 开发者预览(当前) | 尽力修复;不承诺响应时限 | | `0.2.8` | 上一个已发布版本 | 仅评估严重问题 | | `0.1.x` 及更早 | 不支持 | 无 | > `docs/` 与 `docs/releases/` 中的 beta 文档只描述对应版本;真实微信环境未实机验收,详见 [BETA-LIMITATIONS.md](docs/BETA-LIMITATIONS.md)。 ## 4. API 访问令牌(token)轮换 默认「兼容模式」下,本机 API 用回环地址 + `x-dsh-wechat-persona: 1` 请求头鉴权,不强制 token。 如果你显式配置了 `config.apiToken`,所有请求必须带 `Authorization: Bearer `。**怀疑 token 泄露时请立即轮换**: 1. **确认 token 位置**:插件启动时会把本机生成的参考 token 写入运行数据目录的 `api-token` 文件(权限 `0600`),仅本机可读;它不会出现在仓库、文档或公开日志里。 2. **生成并替换(不要输出明文)**:在设置页/配置中把 `apiToken` 改为一段新的随机字符串(例如用本机 PowerShell 生成后直接粘贴,不要贴到聊天、Issue 或截图)。若使用兼容模式,本机 `api-token` 文件可由插件在下次启动时重新生成。 3. **重启并验证旧 token 失效**:重载插件/重启 DSH 后,用旧 token 请求应返回 **401**,用新 token 返回 200;`GET /status` 的 `security.apiTokenEnabled` 应为 `true`。 4. **清理残留**:删除旧的临时脚本、剪贴板、终端历史中可能含 token 的内容;不要把 `api-token` 文件复制进仓库。 > 兼容模式(`apiToken` 为空)下,能访问本机回环端口的**任何本机进程**都可能调用 API;需要更强隔离时请显式配置 token,并注意 beta 默认安全模式同样会拒绝真实发送。 ## 5. 报告安全问题 **请勿在公开 Issue 中披露可利用细节或隐私数据。** 请通过以下方式私密报告: - GitHub 仓库 → **Security** 标签页 → **Report a vulnerability**(Private vulnerability reporting);这是推荐渠道,不要使用公开邮箱。 报告请包含:影响的版本、复现步骤、影响面(数据泄露/发送错误/命令执行等);**不要**附带真实聊天内容、截图、wxid、手机号、Key 或含用户名的路径。我们会在 7 天内确认(beta 阶段尽力而为),修复后在 CHANGELOG 中说明(涉及安全细节前会先协调披露)。 ## 6. 不在安全承诺范围内 - 腾讯/微信自身的账号风控、封禁、限制(属于平台规则风险,见 [DISCLAIMER.md](DISCLAIMER.md))。 - 你自行配置的第三方 LLM 服务商的数据处理行为。 - 因你泄漏 API Key、仓库误提交敏感数据、使用来路不明的 config/人格包导致的损失。 - 0.1.x 及更早版本。