Skip to content

Security: Cr-GH0/chaoxing-agent

Security

SECURITY.md

Security

运行模型

Chaoxing Agent 面向本机可信用户和本机可信 Agent。它持有能够操作学习通账号的会话 Cookie,因此应当像其他本地账号自动化工具一样隔离运行。

  • 使用 stdio MCP,或只把 Streamable HTTP 绑定到 127.0.0.1;
  • 不要把 MCP 端口直接暴露到局域网或公网;
  • Cookie、确认记录和本地状态应放在仓库外,并限制为当前系统用户可读;
  • 不要在共享终端历史、CI 变量输出或问题单中粘贴 Cookie、密码和确认令牌。

凭据处理

session.login 只在内存中使用密码。平台登录成功后,运行时重新读取个人空间;认证标记验证通过才原子保存 Cookie。Cookie JSON、浏览器配置、本地状态和常见下载目录均被 .gitignore 排除。

Windows 上的人机登录应优先使用 chaoxing-agent login --windows-dialog。系统原生对话框遮罩密码,且本项目不启用保存复选框;账号和密码不会出现在命令参数或 PowerShell 命令历史中。不要让 Agent 代管的终端逐行读取账号和密码,因为交互进程一旦提前退出,后续输入可能被 PowerShell 当作命令。原生认证 BLOB 与解包缓冲区会在调用后清零并释放;Python 进程中的密码字符串仅保留到本次登录调用结束。

页面令牌、上传授权、AI 知识库 rbtoken 和其他临时请求头不进入工具结果。服务端错误在返回前会替换当前请求中已知的敏感值。

高风险动作

发布、发送、成绩提交、权限变更、删除和额度消费使用一次性确认门。令牌:

  • 绑定精确动作名和参数 SHA-256 指纹;
  • 默认五分钟过期;
  • 只能消费一次;
  • 参数或动作变化后失效。

确认门防止 Agent 把一次授权扩展到不同对象或不同操作,但不能替代操作系统账号安全。能够读取 Cookie 文件和确认存储的本地进程仍属于可信边界。

网络与下载

正式运行时只使用 HTTP(S),不启动浏览器或学习通客户端。下载目标必须由调用方明确提供;已有文件默认不覆盖。平台返回的外部岗位详情 URL只作为数据返回,不由读取动作自动访问。

岗位能力页面使用 MD5 生成平台要求的公开请求校验参数。该 MD5 不是密码散列、签名信任根或本项目安全控制;真正的授权仍由 HTTPS 会话 Cookie 和平台权限决定。

报告问题

如果仓库已托管在 GitHub,请使用仓库的私密 Security Advisory 报告凭据泄露、确认绕过、任意文件覆盖或未授权操作。不要在公开 Issue 中附带真实账号数据、请求头或响应正文。

报告应包含:受影响版本、动作名、最小复现、预期与实际权限边界,以及已经移除凭据的日志片段。

There aren't any published security advisories