Skip to content

Security

22024735 edited this page Jul 11, 2026 · 1 revision

安全边界

本地信任模型

当前版本按单用户 Windows 桌面应用设计,默认只监听 127.0.0.1。不要直接将端口暴露到局域网或公网。

已实现

  • Hook 路由只接受 loopback 来源。
  • Hook 请求必须携带每次启动随机生成的 token。
  • Shutdown 只允许 loopback 请求。
  • Electron Renderer 开启 contextIsolation,关闭 nodeIntegration
  • 请求体有硬上限,降低意外超大输入风险。
  • 转发时过滤 hop-by-hop headers。
  • Observer 不保存工具正文。

当前风险

  1. 如果把 host 改为 0.0.0.0,AI、status、logs 等接口没有统一访问鉴权。
  2. Vision apiKey 可以明文保存在配置文件。
  3. Renderer 当前可以获取完整 AppConfig,包括直接配置的密钥。
  4. 本地日志和 runtime 文件没有操作系统级加密。
  5. 当前没有请求并发和速率限制。

推荐做法

  • 保持 host=127.0.0.1
  • 使用 apiKeyEnv,不要把 API Key 提交到 Git 或发到日志。
  • 不共享包含个人配置的 portable 目录。
  • 发布前检查 config.json 和构建产物中是否包含真实密钥。
  • 怀疑密钥进入 Git 历史时立即轮换,删除当前文件并不能撤销泄露。

生产级目标

  • 非 loopback 启动必须显式开启并配置访问 token。
  • Renderer 只获取脱敏配置。
  • 密钥进入 Windows Credential Manager 或主进程安全存储。
  • 增加并发限制、请求速率限制和安全审计事件。

Clone this wiki locally