# Security Policy

## 这个项目不做什么

`pi-web-simple` 是**单机、单人、无鉴权**的本地工具。它按设计就不适合多用户或
公网部署：

- 服务端只绑定回环地址（`127.0.0.1`，见 `server/src/index.ts`），没有账号体系，
  也没有权限模型。
- 兜底的 `Host` / `Origin` 校验（`server/src/routes.ts`）只用来挡浏览器发起的
  跨源请求与 DNS rebinding，**不是一道认证边界**。
- 它能做的事包括：读写 pi 的会话文件与配置、作为 pi 子进程在项目目录里执行
  工具、枚举服务端所在机器的目录、真的启动 MCP 配置里的命令。

**不要把它暴露到公网，也不要用反向代理把非回环地址转发进来。** 任何能访问该
端口的人都能操作上述一切。

## 报告漏洞

如果你发现了安全问题，请**不要**直接开公开 issue。任选一种私密渠道：

1. GitHub 仓库的 **Security → Report a vulnerability**（私有 Security Advisory），
   这是首选方式。
2. 若仓库未开启该功能，用 issue 只写「需要私密渠道」，不要贴细节。

报告时请尽量给出：受影响版本或 commit、复现步骤、影响范围，以及你判断的严重
程度。这是一个个人维护的副项目，我会尽力在数天内响应，但无法承诺固定 SLA。

## 已知的、按设计存在的行为（不算漏洞）

- 无鉴权、无密码、无 CSRF token —— 见上。
- `/api/fs/*` 会枚举**服务端机器**的目录（只列子目录名，不读文件内容）。
- MCP 的「检查」会真的执行配置文件里的命令或请求其地址。
- 启动时会向 `https://pi.dev/api/latest-version` 查询版本；MCP 检查与「获取可用
  模型」会访问你配置的第三方端点。
- 会话正文、项目记录、pi 的配置与密钥都明文存在本机（`~/.pi-web-simple/`、
  `~/.pi/agent/`）；工具不额外加密，也不外发这些内容。
