본문으로 건너뛰기
cccskills
무료GitHub에 공개

cc-api-proxy-safety

网关/代理/WAF/CDN 中间件响应判定与关键词匹配安全规范。适用于 proxy/gateway/waf/cdn/nginx/openresty/rewrite/redirect 等代码,防止把正常长正文中的 Cloudflare、502、bad gateway、error 等技术术语误判为上游错误。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Cloudflare
설치 방법 보기

포함된 파일(2)

  • SKILL.md4.3 KB
  • agents/openai.yaml281 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

API 代理响应判定安全规范

网关、反向代理、WAF、CDN 中间件实现响应判定时,不要只靠正文关键词判断上游是否失败。关键词可以作为线索,不能替代 HTTP 状态、响应头、内容类型和业务响应结构。


核心原则

按以下优先级判定响应性质:

  1. 传输层和 HTTP 状态:连接失败、超时、非 2xx/3xx 状态码优先作为错误证据。
  2. 响应头和内容类型:Content-Type、Server、Via、CF-Ray、认证/限流头等比正文关键词更可靠。
  3. 业务响应结构:先解析 JSON envelope、error code、message、data 等契约字段。
  4. 正文启发式:只有在无法按结构判断时,才使用关键词或 HTML 片段,并限制长度和上下文。

禁止:对完整业务正文做纯 strings.Contains(lowerBody, "cloudflare") / "bad gateway" / "error" 判错。


强弱特征拆分

强特征

强特征应同时具备明确上下文,例如:

  • HTTP 状态为 502/503/504/429,且正文是上游错误页或错误 envelope。
  • Content-Type: text/html,正文包含错误页标题,且响应头或状态也指向 CDN/WAF/网关。
  • 结构化 JSON 明确给出上游错误字段,例如 {"error": {"type": "upstream_error"}}。

不要把单个短片段直接当强特征。<html、cf-ray:、cloudflare、502 bad gateway 都可能出现在技术文章、日志展示或用户输入中。

弱特征

以下内容只能作为弱证据:

  • CDN/网关品牌词:cloudflare、openresty、nginx
  • 短错误短语:bad gateway、502 bad gateway、upstream error
  • 通用错误词:error、reconnecting、too many requests

弱特征只有在满足以下条件时才可参与判错:

  • 响应体很短,例如 <= 512 字节。
  • 响应结构不是合法业务 payload。
  • 或者它和错误 HTTP 状态、错误响应头、错误 content-type 同时出现。

判定模板

func isUpstreamFailure(resp *http.Response, body []byte) bool {
    if resp == nil {
        return true
    }

    status := resp.StatusCode
    contentType := strings.ToLower(resp.Header.Get("Content-Type"))

    if status >= 500 || status == http.StatusTooManyRequests {
        low := strings.ToLower(string(body))
        return looksLikeGatewayError(contentType, low, len(body))
    }

    if isValidBusinessPayload(contentType, body) {
        return false
    }

    if len(body) > 512 {
        return false
    }

    low := strings.ToLower(string(body))
    if len(body) <= 512 && containsWeakGatewayKeyword(low) {
        return true
    }

    return false
}

实现时把 looksLikeGatewayError、isValidBusinessPayload、containsWeakGatewayKeyword 拆开测试,不要把所有条件写成一个大 if。


场景策略

场景策略
HTTP 非 2xx/3xx优先按状态码和响应头判错,正文用于补充分类
业务 JSON 响应先解析契约字段,不要因为 data 或正文里有技术词就判错
长文本/文章/模型输出不允许仅凭弱关键词判错
短错误消息可使用弱关键词,但仍应结合调用上下文
流式响应等待完整事件、完整 JSON chunk 或明确错误事件后再判定

回归测试

至少覆盖:

  • 长正文包含 Cloudflare / 502 Bad Gateway / bad gateway 技术术语时不误判。
  • 短响应体只有 502 Bad Gateway 且没有业务结构时判为错误。
  • status=200 且合法业务 JSON 中出现弱关键词时不误判。
  • status=502 且 HTML 错误页时判为错误。
  • streaming 半截 chunk 命中关键词时不立即判错。

与相关 skill 的边界

skill关系
cc-external-system-debugging上游方法论:遇到 CDN/WAF/代理异常时先抓真实 request/response
cc-api-design-safety本 skill 关注代理判定逻辑,不替代 API envelope 设计规范
cc-ops-safety本 skill 不处理运维审批、危险命令或生产配置变更

规则溯源

> 📋 本回复遵循:`cc-api-proxy-safety` - [章节]

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

当设计或修改 REST API 响应结构、处理 API 返回值时触发。防止 API 设计缺陷导致的字段错位、类型歧义等问题。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

doccker/cc-use-exp1.1천2026년 8월 26일 업데이트

当设计或修改 REST API 响应结构、处理 API 返回值,或生成 Excel/CSV/PDF/对账文件等下游产物时触发。防止 API 设计缺陷导致的字段错位、类型歧义,以及生成产物时关键字段缺失但静默成功的问题。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

doccker/cc-use-exp1.1천2026년 8월 26일 업데이트

网关/代理/WAF/CDN 中间件的安全关键词匹配实现规范,防止纯子串匹配误判正常响应内容中的技术术语(如 Cloudflare、502、error)

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

doccker/cc-use-exp1.1천2026년 8월 26일 업데이트

当 API/任务可能执行超过 10 秒(批量数据处理、远程 API 批量调用、全表扫描、跨租户聚合)时触发。防止同步接口被网关 30s 超时切断、用户重复点击触发并发、状态缓存内存泄漏等问题。提供异步任务状态机标准模板。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

doccker/cc-use-exp1.1천2026년 8월 26일 업데이트

当用户操作 .sh、Dockerfile、Makefile、.yml、.yaml 文件,或在 Markdown 中编写 bash 代码块时触发。提供 Bash 编写规范。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

doccker/cc-use-exp1.1천2026년 8월 26일 업데이트

Bash 脚本与系统命令规范。禁止行尾注释,强制使用 tee/heredoc 写入,提升命令执行的可维护性。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

doccker/cc-use-exp1.1천2026년 8월 26일 업데이트

doccker의 스킬 모두 보기

이 스킬의 문제 신고