SuperAPI AI 工具集

cc-api-proxy-safety

安全与审计

查看项目

更新于 10-15 21:11

技能介绍

用途:为网关、反向代理、WAF、CDN 中间件实现响应判定时提供安全规范,避免仅凭正文关键词判断上游是否失败。关键词只能作为线索,不能替代 HTTP 状态、响应头、内容类型和业务响应结构。

主要能力:给出判定优先级——先看传输层与 HTTP 状态(连接失败、超时、非 2xx/3xx 优先作为错误证据),再看响应头与内容类型(Content-Type、Server、Via、CF-Ray、认证/限流头等比正文关键词更可靠),然后解析业务响应结构(JSON envelope、error code、message、data 等契约字段),最后才在无法按结构判断时使用正文启发式,并限制长度和上下文。禁止对完整业务正文做纯 strings.Contains(lowerBody, "cloudflare") / "bad gateway" / "error" 判错。

强弱特征拆分:强特征需同时具备明确上下文,如 HTTP 502/503/504/429 且正文是上游错误页或错误 envelope、Content-Type: text/html 且正文含错误页标题并配合响应头或状态指向 CDN/WAF/网关、结构化 JSON 明确给出上游错误字段。弱特征包括 CDN/网关品牌词(cloudflare、openresty、nginx)、短错误短语(bad gateway、502 bad gateway、upstream error)、通用错误词(error、reconnecting、too many requests),仅在响应体很短(如 <= 512 字节)、结构不是合法业务 payload,或与错误状态/响应头/content-type 同时出现时才可参与判错。

使用方式:资料给出判定模板函数 isUpstreamFailure,先判 resp 是否为 nil,再取 status 与 contentType;status >= 500 或 429 时调用 looksLikeGatewayError;合法业务 payload 返回 false;正文超过 512 字节返回 false;短正文命中弱关键词返回 true。实现时应把 looksLikeGatewayError、isValidBusinessPayload、containsWeakGatewayKeyword 拆开测试,不要写成一个大 if。

适用场景:HTTP 非 2xx/3xx 优先按状态码和响应头判错;业务 JSON 响应先解析契约字段;长文本/文章/模型输出不允许仅凭弱关键词判错;短错误消息可用弱关键词但需结合调用上下文;流式响应等待完整事件、完整 JSON chunk 或明确错误事件后再判定。

限制与边界:本规范不替代 API envelope 设计规范,不处理运维审批、危险命令或生产配置变更;遇到 CDN/WAF/代理异常时应先抓真实 request/response。回归测试至少覆盖长正文含技术术语不误判、短响应体只有 502 Bad Gateway 且无业务结构判错、status=200 且合法业务 JSON 含弱关键词不误判、status=502 且 HTML 错误页判错、streaming 半截 chunk 命中关键词不立即判错。