网站套cloudflare验证详细教程
Cloudflare 的“验证”体系主要包含两大类:
Cloudflare 提供的验证码解决方案,用于取代 reCAPTCHA。 主要用于:登录、注册、表单提交、访问敏感接口等场景。
特性:
-
免费
-
隐形验证(Invisible)
-
后端可验证 Token,有效防止恶意机器人
由 Cloudflare 边缘节点自动触发,用于抵御:
-
大规模扫描
-
恶意 Bot
-
Flood 攻击
-
可疑来源流量
触发方式包括:
-
Browser Integrity Check (BIC)
-
Managed Challenge
-
Captcha Challenge(仍可选择)
-
Under Attack Mode 模式下的“浏览器检查”页面
1.登录 Cloudflare 控制台 https://dash.cloudflare.com/
-
左侧菜单选择 Turnstile
-
点击 Create
-
配置:
-
Site Name:组件命名
-
Domain:限定或开放域名
-
Widget Mode:建议 Invisible(隐式)
- Cloudflare 将生成:
-
site_key
-
secret_key
这两个密钥分别用于前端嵌入与后端验证。
在 HTML 中引入 Turnstile API:
1<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
2
3嵌入 Turnstile:
1 <!-- 其他表单字段 -->
2
3 <div class="cf-turnstile"
4 data-sitekey="YOUR_SITE_KEY">
5 </div>
6
7 <button type="submit">提交</button>
8</form>
9
10隐式验证(Invisible)可以采用自动触发模式,无需展示组件。
Turnstile 返回的 token 在后端必须校验。 以下提供标准代码示例。
Node.js(示例)
1import fetch from "node-fetch";
2
3export async function verifyTurnstile(responseToken) {
4 const secretKey = process.env.TURNSTILE_SECRET;
5
6 const result = await fetch(
7 "https://challenges.cloudflare.com/turnstile/v0/siteverify",
8 {
9 method: "POST",
10 body: new URLSearchParams({
11 secret: secretKey,
12 response: responseToken,
13 }),
14 }
15 );
16
17 return await result.json();
18}
19PHP(示例)
1$secret = "YOUR_SECRET_KEY";
2$response = $_POST['cf-turnstile-response'];
3
4$verify = file_get_contents(
5 "https://challenges.cloudflare.com/turnstile/v0/siteverify",
6 false,
7 stream_context_create([
8 "http" => [
9 "method" => "POST",
10 "header" => "Content-type: application/x-www-form-urlencoded",
11 "content" => http_build_query([
12 "secret" => $secret,
13 "response" => $response,
14 ])
15 ]
16 ])
17);
18
19$result = json_decode($verify, true);
20
21if ($result["success"] === true) {
22 // 验证通过逻辑
23}
24
25如果希望对可疑流量执行“浏览器检查”或 Challenge,可以通过 Cloudflare 安全策略进行配置。
路径: Security → Settings → Security Level
可选值:
| 等级 | 含义 |
|---|---|
| High | 更频繁触发挑战页面 |
| Under Attack | 出现“Checking your browser”页面 |
若网站处于攻击状态,Under Attack Mode 可大幅提升安全性。
路径: Security → Bots → Bot Fight Mode → ON
此模式可识别并处置恶意自动化流量。 对可疑来源将触发挑战或直接阻断。
进入:
Security → WAF → Custom Rules → Create rule
示例:对 /admin 路径要求浏览器验证。
Rule Expression
1http.request.uri.path eq "/admin"
2Action
1Managed Challenge
2或者:
1JS Challenge
2Captcha Challenge
3此类规则适用于:
-
管理后台防护
-
API 接口防止滥用
-
关键逻辑路径的访问控制
以下方案可覆盖绝大多数站点的安全需求:
-
Turnstile(Invisible)用于:
-
- 登录
-
- 注册
-
- 密码找回
-
- 评论/用户提交表单
-
- API 请求频率较高的接口
-
Security Level:High
-
Bot Fight Mode:ON
-
Browser Integrity Check:ON
-
WAF 自定义规则:
-
- /admin → Managed Challenge
-
- /api/* → Rate limiting + Challenge
-
若遭遇攻击:切换到 Under Attack Mode
-
监控访问日志(Security → Events)动态调整规则
通过引入 Cloudflare 的验证体系——包括前端的 Turnstile 验证机制 与边缘侧的 Security Challenge 安全挑战——网站能够构建起覆盖应用层与网络边缘的多层次安全架构。Turnstile 为用户交互场景(如登录、注册与表单提交)提供轻量化、隐私友好的验证能力,而 Cloudflare 边缘节点的安全挑战机制则能有效识别并拦截恶意机器人、异常流量与潜在攻击行为。
当二者结合使用,并配合合理的 WAF 规则、安全等级设置与访问控制策略时,整个站点的安全性与抗攻击能力将显著提升,同时仍能保持良好的用户体验与系统性能。通过根据业务风险等级对验证策略进行精细化调整,开发者与运维人员可以建立一个高可用、高伸缩性、易维护的安全防护体系。总体而言,Cloudflare 的验证组件为现代 Web 应用提供了兼具可靠性与灵活性的安全保障方案。









