一、什么是 CC 攻击?
CC(Challenge Collapsar)攻击 是一种典型的 应用层 DDoS 攻击,主要针对 Web 服务(HTTP / HTTPS)。
与传统 DDoS 不同,CC 攻击并不是单纯靠大流量压垮带宽,而是:
利用大量“看似合法”的 HTTP 请求,消耗服务器 CPU、线程、数据库连接等资源,最终导致服务不可用。
CC 攻击的核心特征
- 请求是 真实 HTTP 请求
访问路径往往是:
//login/api/*
- 请求频率高,但不一定“爆发式”
常伴随:
- 随机 User-Agent
- 随机 Referer
- 多 IP(甚至 10w+)
二、为什么 CC 攻击特别难防?
1️⃣ IP 数量巨大
现代 CC 攻击往往使用:
- 僵尸网络(Botnet)
- 代理池 / VPN
- 云主机资源
👉 单纯靠 封 IP 几乎无效。
2️⃣ 请求“看起来很正常”
- GET / POST 都合法
- 返回 200
- 不触发传统防火墙规则
👉 很容易绕过基于规则的拦截。
3️⃣ 攻击消耗的是应用资源
CC 攻击直接打到:
- PHP-FPM
- Java 线程池
- MySQL / Redis
即使带宽没满,服务也会先挂。
三、Cloudflare 为什么能有效防 CC?
Cloudflare 的优势不在于“封 IP”,而在于 行为识别 + 边缘拦截。
1️⃣ 流量先到 Cloudflare 边缘节点
用户 / 攻击者
↓
Cloudflare 边缘节点
↓
你的服务器👉 大部分恶意请求 在边缘就被拦掉,不会消耗你任何资源。
2️⃣ 行为分析(不只看 IP)
Cloudflare 会综合分析:
- 请求频率
- 访问路径模式
- Header 行为
- Cookie / JS 执行情况
- TLS 指纹(JA3)
即使攻击来自 10 万不同 IP,
只要行为异常,也能被识别为攻击。
3️⃣ JS / Managed Challenge
对可疑请求自动下发挑战:
- JS Challenge
- Managed Challenge(新版无感)
✔ 真人浏览器几乎无影响
❌ 自动化脚本大量失败
四、Cloudflare 防 CC 核心配置(实战)
1️⃣ 开启 Bot Fight Mode(免费必开)
路径:
Security → Bots → Bot Fight Mode → ON作用:
- 自动拦截明显的自动化流量
- 对正常用户影响极小
2️⃣ 配置 Rate Limiting(关键)
示例:限制 API 接口
规则示例:
URL: /api/*
10 秒内 > 30 次触发动作:
- Managed Challenge
- 或 Block(更激进)
👉 可有效拦截高频 CC 请求。
3️⃣ WAF 规则(推荐)
示例 1:可疑 Bot 行为
(cf.client.bot)
→ Managed Challenge示例 2:高风险接口加强防护
(http.request.uri.path contains "/login")
→ Challenge4️⃣ 国家 / 地区限制(可选)
如果你的业务只面向特定地区:
(not ip.geoip.country in {"CN","JP"})
→ Challenge五、一个非常重要但常被忽略的点
❗ 只允许 Cloudflare IP 访问源站
如果攻击者 绕过 Cloudflare 直连你的服务器,
所有防护都会失效。
正确做法:
- 防火墙只放行 Cloudflare IP
- 拒绝所有其他来源
这是 Cloudflare 防护的 生命线。
六、Cloudflare + 自建防护的最佳组合
Cloudflare 不是“万能”,最佳实践是 多层防御:
Cloudflare(边缘拦截)
↓
Nginx 限速(兜底)
↓
Redis 应用层限流应用层示例
- IP 10 秒 10 次
- 超限临时封禁
- 异常行为记录
👉 即使少量攻击穿透 Cloudflare,也能被兜住。
七、Cloudflare 能防住哪些 CC?
✅ 非常擅长
- 大规模代理 CC
- 高并发 HTTP Flood
- 普通脚本攻击
⚠️ 有一定成本
- Headless Chrome
- 慢速、低频 CC
❌ 几乎无法完全防
- 真人参与的攻击(成本极高)
八、总结
CC 攻击的本质,是“用合法请求消耗你的资源”。
而 Cloudflare 的价值在于:
- 把攻击挡在你服务器之外
- 用行为模型对抗 IP 泛滥
- 极大降低防御成本