Không ai thích CAPTCHA. Nheo mắt nhìn đèn giao thông và trụ cứu hỏa để chứng minh mình là người là một loại thuế đánh vào mọi khách truy cập trung thực, và dữ liệu mà những câu đố đó gửi ngược về các mạng quảng cáo lại là một mối lo riêng. Cloudflare Turnstile thay thế tất cả những điều đó bằng một bài kiểm tra thông minh, gần như vô hình, xác nhận khách truy cập là người mà không cần câu đố, không theo dõi họ và không tốn của bạn đồng nào. Vào năm 2026, đây là cách gọn gàng nhất để bảo vệ một biểu mẫu khỏi bot.

Hướng dẫn này đi qua việc Turnstile là gì, vì sao nó vượt trội hơn reCAPTCHA với hầu hết các trang web, và chính xác cách thêm nó vào bất kỳ biểu mẫu nào, bao gồm cả bước xác minh phía máy chủ tối quan trọng mà nhiều hướng dẫn bỏ qua.

Tóm tắt

  • Turnstile là giải pháp thay thế CAPTCHA miễn phí, thân thiện với quyền riêng tư của Cloudflare, không có câu đố hình ảnh
  • miễn phí với hạn mức hào phóng và hoạt động trên mọi trang web, không chỉ những trang đã ở trên Cloudflare
  • Việc thiết lập gồm hai phần: một widget trên biểu mẫu của bạn và một lệnh gọi xác minh phía máy chủ mà bạn không được bỏ qua
  • Nó cung cấp các chế độ widget managed, non-interactive và invisible để phù hợp với các biểu mẫu khác nhau
  • Nó là giải pháp thay thế sẵn dùng cho reCAPTCHA trên biểu mẫu liên hệ, đăng ký, đăng nhập và ô bình luận

Cloudflare Turnstile là gì

Cloudflare Turnstile là một giải pháp thay thế CAPTCHA, xác minh khách truy cập là người bằng một loạt thử thách trình duyệt nhẹ, không gây phiền, chạy ở chế độ nền. Thay vì yêu cầu người dùng giải câu đố, nó phân tích các tín hiệu từ trình duyệt và trong hầu hết trường hợp xác nhận khách truy cập một cách âm thầm. Khi cần tương tác, thường chỉ là một ô đánh dấu duy nhất, không bao giờ là một lưới hình ảnh.

Quan trọng là Turnstile được xây dựng để tôn trọng quyền riêng tư. Nó không lập hồ sơ người dùng để bán quảng cáo, và không phụ thuộc vào việc theo dõi một người trên khắp web. Bạn có được sự bảo vệ khỏi bot mà không biến khách truy cập thành một sản phẩm dữ liệu, điều ngày càng quan trọng với các trang chú trọng GDPR.

Nó cũng hoạt động trên mọi trang. Bạn không cần định tuyến tên miền qua proxy của Cloudflare để dùng Turnstile; widget và API xác minh hoạt động từ bất cứ đâu.

Vì sao nên thay thế reCAPTCHA

Lý do để chuyển đổi rất rõ ràng:

  • Trải nghiệm người dùng tốt hơn. Không có câu đố cho khách truy cập hợp lệ, nghĩa là ít biểu mẫu bị bỏ dở hơn.
  • Quyền riêng tư. Turnstile được thiết kế để không theo dõi người dùng cho mục đích quảng cáo, khác với giải pháp thay thế đang chiếm ưu thế.
  • Miễn phí và hào phóng. Turnstile miễn phí, với hạn mức đủ cao cho phần lớn các trang web.
  • Hoạt động ở mọi nơi. Nó không bị ràng buộc vào việc có DNS trên Cloudflare.
  • Tích hợp đơn giản. Một thẻ script, một widget và một lần kiểm tra phía máy chủ.

Với hầu hết biểu mẫu liên hệ, đăng ký và hệ thống bình luận, có rất ít lý do để tiếp tục trả cái giá về khả năng sử dụng của CAPTCHA truyền thống.

Bước 1: Tạo một widget Turnstile

Trong bảng điều khiển Cloudflare, mở Turnstile và thêm một trang mới. Bạn cung cấp một tên và (các) tên máy chủ nơi widget sẽ chạy. Cloudflare cấp cho bạn hai khóa:

  • Một site key (công khai) đặt trong HTML của bạn
  • Một secret key (riêng tư) nằm lại trên máy chủ và được dùng để xác minh

Bạn cũng chọn một chế độ widget:

Chế độHành vi
ManagedCloudflare quyết định có hiển thị ô đánh dấu hay không dựa trên mức rủi ro (mặc định được khuyến nghị)
Non-interactiveChạy âm thầm, không có ô đánh dấu
InvisibleẨn hoàn toàn; chạy hoàn toàn ở chế độ nền

Chế độ managed là điểm khởi đầu hợp lý cho hầu hết biểu mẫu.

Bước 2: Thêm widget vào biểu mẫu của bạn

Đưa script Turnstile vào và đặt phần tử widget vào biểu mẫu của bạn. Thay YOUR_SITE_KEY bằng site key từ bảng điều khiển:

 1<form action="/submit" method="POST">
 2  <input type="email" name="email" required />
 3
 4  <!-- Turnstile widget -->
 5  <div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div>
 6
 7  <button type="submit">Send</button>
 8</form>
 9
10<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>

Khi widget chạy, nó thêm vào biểu mẫu của bạn một trường ẩn tên cf-turnstile-response chứa một token dùng một lần. Token đó chính là thứ mà máy chủ của bạn xác minh ở bước tiếp theo.

Bước 3: Xác minh trên máy chủ (Đừng bỏ qua bước này)

Đây là bước thực sự mang lại sự bảo vệ, và là bước mà các hướng dẫn bỏ sót nhiều nhất. Riêng widget không chứng minh được gì; kẻ tấn công có thể gửi biểu mẫu của bạn trực tiếp. Bạn phải lấy token từ biểu mẫu và xác thực nó ở phía máy chủ với điểm cuối siteverify của Cloudflare trước khi tin tưởng vào lượt gửi.

Gửi token và secret key của bạn tới https://challenges.cloudflare.com/turnstile/v0/siteverify:

 1// Example: Cloudflare Worker or any server-side handler
 2async function verifyTurnstile(token, ip, secret) {
 3  const formData = new FormData();
 4  formData.append("secret", secret);
 5  formData.append("response", token);
 6  if (ip) formData.append("remoteip", ip);
 7
 8  const result = await fetch(
 9    "https://challenges.cloudflare.com/turnstile/v0/siteverify",
10    { method: "POST", body: formData }
11  );
12
13  const outcome = await result.json();
14  return outcome.success === true;
15}

Chỉ tiếp tục hành động của biểu mẫu (gửi email, tạo tài khoản, đăng bình luận) khi outcome.successtrue. Nếu là false, hãy từ chối lượt gửi. Không bao giờ để lộ secret key trong mã phía máy khách.

Một chi tiết hữu ích cho phát triển: Cloudflare cung cấp khóa thử nghiệm luôn vượt qua, luôn chặn hoặc luôn buộc một thử thách tương tác, để bạn có thể kiểm thử mọi đường đi trước khi đưa lên môi trường thật.

Các trường hợp sử dụng phổ biến của Cloudflare Turnstile

Turnstile khớp vào bất cứ thứ gì mà một con bot có thể lạm dụng:

  • Biểu mẫu liên hệ để ngăn các lượt gửi spam
  • Đăng ký và ghi danh để chặn việc tạo tài khoản giả (nó kết hợp tốt với một hệ thống người dùng Cloudflare Pages )
  • Biểu mẫu đăng nhập để làm chậm các cuộc tấn công nhồi thông tin đăng nhập
  • Ô bình luận để giảm spam mà không làm phiền độc giả thật
  • Đăng ký bản tin để giữ danh sách của bạn sạch sẽ

Nếu bạn muốn thiết lập đúng cách việc bảo vệ khỏi bot trên toàn trang, bao gồm cả xác minh phía máy chủ được làm bài bản, đó là một phần trong những gì tôi đề cập trong dịch vụ bảo mật trang web của tôi.

Những điểm chính

  • Turnstile là giải pháp thay thế CAPTCHA miễn phí, thân thiện với quyền riêng tư, không có câu đố hình ảnh
  • Nó hoạt động trên mọi trang web, không chỉ những trang có DNS trên Cloudflare
  • Việc tích hợp gồm một widget trên biểu mẫu cộng với một lệnh gọi xác minh phía máy chủ bắt buộc
  • Chế độ managed là mặc định tốt nhất; các chế độ non-interactive và invisible tồn tại cho những nhu cầu cụ thể
  • Luôn xác minh token ở phía máy chủ; riêng widget không cung cấp sự bảo vệ thực sự nào
  • Nó là giải pháp thay thế sẵn dùng, gọn gàng cho reCAPTCHA trên biểu mẫu, đăng ký, đăng nhập và bình luận

Câu hỏi thường gặp

Cloudflare Turnstile có miễn phí không? Có. Turnstile miễn phí, với hạn mức đủ hào phóng cho phần lớn các trang web. Không có khoản phí nào cho widget tiêu chuẩn và quy trình xác minh.

Tôi có cần trang của mình ở trên Cloudflare để dùng Turnstile không? Không. Turnstile hoạt động trên mọi trang web bất kể DNS hay hosting của bạn ở đâu. Bạn chỉ cần một tài khoản Cloudflare để tạo widget và lấy site key cùng secret key.

Turnstile có phải là giải pháp thay thế tốt cho reCAPTCHA không? Với hầu hết các trang, có. Nó mang lại trải nghiệm người dùng tốt hơn mà không có câu đố, được thiết kế để tôn trọng quyền riêng tư thay vì theo dõi người dùng cho mục đích quảng cáo, và miễn phí. Nó bao phủ cùng các trường hợp sử dụng: biểu mẫu liên hệ, đăng ký, đăng nhập và bình luận.

Tôi có phải xác minh token trên máy chủ không? Có, luôn luôn. Riêng widget phía máy khách không bảo vệ bạn, vì một con bot có thể gửi biểu mẫu trực tiếp. Bạn phải gửi token tới điểm cuối siteverify của Cloudflare cùng với secret key và chỉ tin tưởng các lượt gửi trả về success.

Turnstile cung cấp những chế độ widget nào? Ba: managed (Cloudflare quyết định có hiển thị ô đánh dấu hay không dựa trên mức rủi ro), non-interactive (âm thầm, không có ô đánh dấu) và invisible (ẩn hoàn toàn). Chế độ managed là mặc định được khuyến nghị cho hầu hết biểu mẫu.

Tôi có thể kiểm thử Turnstile trước khi đưa lên môi trường thật không? Có. Cloudflare cung cấp các khóa thử nghiệm luôn vượt qua, luôn chặn hoặc luôn buộc một thử thách tương tác, để bạn có thể xác minh từng đường đi kết quả trong giai đoạn phát triển trước khi triển khai khóa thật.