工具主要保护三类信息:API Key、API 响应/生成内容,以及使用者在 CI 日志中的服务拓扑信息。它不是防火墙、代理或供应商级别的合规审计器。
| 风险 | 处理方式 |
|---|---|
| Key 出现在 shell 历史或进程参数 | 只从环境变量读取,不提供 --api-key |
| URL 把凭据带到日志或重定向目标 | 拒绝 userinfo、query、fragment;跨源重定向阻断 |
| 误把测试请求发到生产/错误主机 | 不提供默认 URL;HTTPS 默认;目标由操作者显式给出 |
| 大响应造成内存压力 | 默认最多读取 1 MiB,可由调用者进一步缩小 |
| CI 因响应正文泄露秘密 | 报告只保留状态、延迟、数量和静态错误类别 |
| 无意产生模型费用 | 默认只读 /models;聊天请求需显式 --chat --model |
| 模型 ID 向终端日志注入不可见或改写显示的字符 | 在发出请求前拒绝无效 UTF-8,以及所有 unicode.IsPrint 判定为非打印的 Unicode 字符(包括双向文本覆盖、零宽格式字符、行分隔符和段落分隔符);仍拒绝首尾空白和超过 256 字节的标识 |
| API Key 通过 HTTP 头注入额外内容 | 启用认证时,包含 CR 或 LF 的 Key 会在配置校验阶段失败;校验发生在构造 HTTP 请求和设置 Authorization 头之前,不会发出请求 |
- 不要把 API Key 写进 CI 配置、Issue、截图或 shell 历史;使用平台的 masked/protected secret。
- 选择测试模型和额度时遵守上游服务的计费、速率和数据保留政策。
- 在生产网络运行前审查 DNS、出口策略和证书信任链;本工具不会替你判断目标是否“可信”。
- 如果服务商返回的错误正文包含敏感信息,本工具虽不打印正文,但上游或反向代理仍可能记录请求;请按其政策处理。
--allow-http只适合本机 mock 服务,不应用于真实凭据或公网地址。
项目不实现流式协议、工具调用、文件上传、批量压测、自动重试、模型质量评测、内容审核或匿名遥测。把这些能力加入核心前,必须先讨论其隐私和计费影响。