Skip to content

Security: ergjk/vrpa

Security

SECURITY.md

安全策略(Security Policy)

支持版本

版本 状态
1.0.x(Unreleased / RC) 维护中
< 1.0 不支持

报告安全问题

请不要在公开 Issue 中披露以下内容:

  • 真实 API Key、.env 内容、账号 Cookie / Token;
  • 聊天记录原文、联系人信息;
  • 可绕过 dry_run 或三重校验的利用方式;
  • 可导致真实发送、消息泄露或任意代码执行的缺陷。

推荐方式:

  1. 使用 GitHub 的 Private vulnerability reporting / Security Advisory(仓库 Security 页面);
  2. 或通过仓库维护者公开的联系方式私下联系。

请附:影响版本、复现步骤、最小示例、预期/实际行为、是否涉及真实发送。维护者会在确认后尽快修复并致谢(如需匿名请说明)。

安全边界(设计约束)

本项目默认按“只读 + dry-run”运行,以下边界不可通过配置随意绕过:

  • 红线 R3:消息内容只允许通过“鼠标框选 + Ctrl+C”剪贴板采集,禁止对消息做图像识别;
  • 默认 dry_run: true:run --simulate 与 run --real 默认都不真实发送;
  • 三重校验:真实发送前必须通过内容、目标会话、回读校验;
  • 真实发送开关:dry_run=false 与 safety.allow_real_send=true 必须同时显式开启,且需真机验收;
  • 真实发送命令:仅 send --real --i-understand-risk,并限制在 safety.real_send_allowlist 会话;单次单条、失败不自动重发;
  • 敏感文件:.env、data/identity.toml、data/ 已被 .gitignore 忽略,不应提交;
  • 消息数据:除用户配置的 LLM API 外,不上传聊天内容;记忆库保存在本地;
  • 测试隔离:单元测试不读取仓库根 .env,不触发真实桌面操作或付费 LLM 调用。

远程控制(V1.0 不实现)

  • V1.0 不监听任何网络端口,只有进程内控制接口;
  • V1.1 如实现远程,默认仅 127.0.0.1,必须 token + HTTPS/VPN,禁止直接公网暴露;
  • 远程默认只允许 status/pause/resume/stop;远程启动与远程发送默认禁止;
  • 远程发送即使显式开启,也必须会话 allowlist + 二次确认;
  • 远程端不得执行 shell、改配置、读取消息原文或密钥。
  • 详见 docs/adr/0005-remote-control.md。

使用者的责任

  • 仅用于个人、合规、低频场景;不要用于营销群发、自动加好友、骚扰或违反平台规则的行为;
  • 自行遵守微信/腾讯及当地法律法规与平台条款;
  • 妥善保管 API Key,泄露后立即轮换;
  • 真实发送前请先备份 data/,并逐项完成验收清单。

不在范围内

  • 因使用本项目导致的平台账号限制、封禁或法律风险;
  • 第三方 LLM 服务商的数据政策与可用性;
  • 用户自行修改代码关闭安全边界后产生的问题。

There aren't any published security advisories