Bí ẩn về người bảo vệ vô hình
Hãy tưởng tượng bạn điều hành một doanh nghiệp thành công. Trụ sở chính của bạn nằm ở một địa chỉ lớn, và bạn có một văn phòng chi nhánh hiện đại ngay gần đó dành riêng cho các khách hàng VIP. Một ngày nọ, bạn quyết định đóng cửa hoàn toàn tòa nhà trụ sở chính. Bạn chuyển toàn bộ hoạt động đi nơi khác, nhưng vẫn giữ nguyên hoạt động của chi nhánh.
Thật ngạc nhiên, những khách hàng cố gắng vào chi nhánh đột nhiên bị chặn lại ngay tại cổng, buộc phải chứng minh rằng họ không phải robot. Chuyện gì xảy ra vậy? Bạn chỉ đóng cửa trụ sở chính, không phải chi nhánh! Đây chính xác là tình huống nhiều nhà phát triển gặp phải khi xóa bản ghi A của tên miền gốc nhưng subdomain vẫn tiếp tục hiện reCAPTCHA của Cloudflare.
Hiểu về DNS Record: Chúng hoàn toàn độc lập nhau
Trước khi đi vào các tính năng bảo mật của Cloudflare, hãy làm rõ một hiểu lầm phổ biến. Bản ghi A và bản ghi CNAME là hai mục hoàn toàn riêng biệt trong cấu hình DNS của bạn. Hãy nghĩ chúng như hai trang khác nhau trong một cuốn sổ địa chỉ. Xóa một trang không ảnh hưởng gì đến trang kia.
- Bản ghi A: Trỏ tên miền (như
ginbok.com) trực tiếp đến một địa chỉ IP. Đây là loại bản ghi DNS cơ bản nhất. - Bản ghi CNAME: Trỏ một subdomain (như
note.ginbok.com) đến một tên miền khác (nhưcname.vercel-dns.com). Loại này thường dùng cho các dịch vụ được host trên Vercel, Netlify, hay GitHub Pages.
Khi bạn xóa bản ghi A của ginbok.com, bạn chỉ xóa địa chỉ của tòa nhà trụ sở chính. Chi nhánh tại note.ginbok.com, được quản lý bởi bản ghi CNAME riêng trỏ về Vercel, vẫn tiếp tục hoạt động hoàn toàn độc lập.
Đám mây cam vs. Đám mây xám: Proxied vs. DNS Only
Đây là lúc Cloudflare xuất hiện. Khi bạn thêm bản ghi DNS trong Cloudflare, bạn sẽ thấy một biểu tượng đám mây bên cạnh. Biểu tượng này là một trong những cài đặt quan trọng nhất bạn có thể thay đổi.
- Đám mây cam (Proxied): Toàn bộ traffic đến subdomain của bạn phải đi qua mạng lưới máy chủ toàn cầu của Cloudflare trước khi đến hosting thực sự (Vercel). Cloudflare đóng vai trò trung gian. Tất cả tính năng của Cloudflare đều được kích hoạt: cache, chống DDoS, WAF rules, và Bot Fight Mode.
- Đám mây xám (DNS Only): Traffic đi thẳng từ trình duyệt của người dùng đến hosting. Cloudflare chỉ đóng vai trò tra cứu DNS thuần túy. Không có bộ lọc bảo mật nào của Cloudflare được áp dụng.
Vì note.ginbok.com đang bật Proxied (Đám mây cam), mọi request đến subdomain của bạn đều bị kiểm tra bởi lớp bảo mật của Cloudflare. Đó là lý do reCAPTCHA xuất hiện.
Bot Fight Mode và WAF Rule là gì?
Cloudflare cung cấp các tính năng bảo mật mạnh mẽ để bảo vệ website khỏi bot độc hại và tấn công. Hai thủ phạm phổ biến nhất gây ra reCAPTCHA bất ngờ là:
- Bot Fight Mode: Tính năng này tự động nhận diện và thử thách các traffic trông giống như đến từ bot tự động. Vấn đề là đôi khi nó nhầm lẫn hoạt động phát triển hợp lệ (như reload trang liên tục khi test, hay gọi API nhiều lần từ một IP) với hành vi bot. Bạn tìm cài đặt này tại Security > Bots.
- WAF (Web Application Firewall) Rules: Đây là các quy tắc tùy chỉnh chặn hoặc thử thách các loại request nhất định. Nếu WAF rule được cấu hình quá chặt, nó có thể thử thách cả người dùng bình thường. Kiểm tra tại Security > WAF.
- Security Level: Cloudflare có cài đặt mức bảo mật chung (Low, Medium, High, Under Attack). Nếu đang để ở mức High, nhiều visitor sẽ bị thử thách hơn. Điều chỉnh tại Security > Settings.
Cách debug bằng Ray ID
Khi bạn thấy trang reCAPTCHA của Cloudflare, bạn sẽ thấy một mã duy nhất ở cuối trang gọi là Ray ID. Đây là công cụ debug tốt nhất của bạn. Cách dùng:
- Vào Cloudflare dashboard và chọn Security > Events.
- Bạn sẽ thấy log của tất cả các request bị chặn hoặc bị thử thách.
- Lọc theo subdomain
note.ginbok.comhoặc tìm event trùng với thời điểm bạn bị hỏi reCAPTCHA. - Click vào event đó. Cloudflare sẽ cho bạn biết chính xác dịch vụ nào đã kích hoạt thử thách: Bot Fight Mode, WAF Rule, hay IP Reputation.
Cách này giúp bạn không cần đoán mò. Bạn sẽ biết chính xác tính năng nào cần tắt hoặc điều chỉnh.
Giải pháp nhanh nhất: Chuyển sang DNS Only
Nếu bạn không cần các tính năng nâng cao của Cloudflare (như Zaraz analytics, WAF rules tùy chỉnh, hay Cloudflare Workers) cho subdomain note.ginbok.com, cách sửa nhanh nhất là bỏ qua proxy của Cloudflare hoàn toàn.
Đây là lý do tại sao điều này hoàn toàn an toàn: Vercel, nền tảng hosting mà subdomain của bạn đang trỏ đến, đã cung cấp chứng chỉ SSL cấp doanh nghiệp và hạ tầng bảo mật riêng rất mạnh. Bạn không hề mất đi bảo mật khi tắt proxy Cloudflare cho subdomain này.
Các bước thực hiện:
- Đăng nhập vào Cloudflare dashboard.
- Vào DNS > Records.
- Tìm bản ghi CNAME của
note.ginbok.com. - Click vào biểu tượng đám mây cam để chuyển sang đám mây xám (DNS Only).
- Lưu thay đổi.
Traffic sẽ đi thẳng từ trình duyệt của người dùng đến Vercel, hoàn toàn bỏ qua bộ lọc bảo mật của Cloudflare. reCAPTCHA sẽ biến mất ngay lập tức.
Tóm tắt nhanh
Để tổng kết: việc xóa bản ghi A của tên miền gốc không ảnh hưởng gì đến cài đặt bảo mật của subdomain. reCAPTCHA xuất hiện do Bot Fight Mode hoặc WAF rules của Cloudflare đang được áp dụng lên bản ghi CNAME đang ở chế độ Proxied của note.ginbok.com. Bạn có thể tắt tính năng bảo mật gây ra thử thách đó (tìm qua Ray ID trong Security Events), hoặc đơn giản là chuyển subdomain sang chế độ DNS Only và để Vercel tự xử lý bảo mật.