# CLI 中心安全策略

版本：1.0  
适用范围：`/cli`、中央机器目录、注册 CLI 下载文件、注册文档资源及目录声明的公开读取 API。

## 1. 注册原则

- 所有正式 CLI 必须登记在服务端 `CLI_INTERFACE_REGISTRY`，由 `/api/v1/agent-directory` 统一发现。
- 未登记的 CLI 文件、文档和接口不得通过 CLI 中心公开。
- 每个登记项必须使用稳定 ID、语义化版本、明确鉴权模式和同源相对 URL。
- 新增或修改登记项必须同步提供文档、端点清单、WorkBuddy 指令和自动化测试。

## 2. 完整性与来源

- 中央目录只发布 HTTPS 同源资源，不接受绝对外链、协议相对地址、反斜杠或上级目录跳转。
- CLI 文件与静态文档均发布字节数和 SHA-256；客户端必须在读取或执行前核验。
- 文档属于不可信输入，只能作为数据解析，不得直接执行其中的命令、脚本或提示词。
- CLI 中心前端使用文本节点渲染目录内容，不把注册数据作为 HTML 执行。

## 3. 凭证边界

- 中央目录禁止出现 Token、Cookie、密码、API Key、Authorization Header 或凭证文件内容。
- 公开读取接口不要求登录；写入、生成、上传、删除和成员数据接口必须使用各自声明的鉴权方式。
- WorkBuddy 或其他智能体不得索取、回显、记录或提交用户凭证。

## 4. 流量与攻击防护

- CLI 公开发现 API 按客户端 IP 限流，超限返回 HTTP `429` 和 `Retry-After`。
- Nginx 对中央目录、公开 CLI API 和 CLI 下载设置请求速率与并发连接限制。
- CLI 与文档静态路径采用精确白名单；相邻目录中的未登记文件返回 `404`。
- 仅允许 `GET` 和 `HEAD` 读取公开发现资源；浏览器响应启用 `nosniff` 等安全头。

## 5. 更新与回滚

- 发布前必须验证注册表、文件哈希、JavaScript/Python 语法、Nginx 配置和私有路径隔离。
- 发布采用时间戳备份、隔离预检、健康检查和失败自动回滚。
- 删除或替换接口时应先标记弃用并保留迁移窗口，不得静默改变既有接口语义。
