
Nikolai Smirnov
Software Development Lead

Nếu bạn từng xây dựng một biểu mẫu web, trang đăng nhập hoặc quy trình thanh toán, bạn gần như chắc chắn đã gặp phải reCAPTCHA. reCAPTCHA của Google là hệ thống CAPTCHA được triển khai phổ biến nhất trên internet, bảo vệ hàng triệu trang web khỏi hành vi lạm dụng tự động. Tuy nhiên, sự khác biệt giữa reCAPTCHA v2 và v3 không chỉ là số phiên bản — hai hệ thống này hoạt động dựa trên các nguyên lý cơ bản khác nhau, phục vụ các mục tiêu UX khác nhau và yêu cầu các chiến lược triển khai khác nhau.
Bài viết này phân tích reCAPTCHA v2 và v3 bằng các thuật ngữ kỹ thuật đơn giản: mỗi phiên bản làm gì, cách hoạt động bên trong, khi nào nên sử dụng phiên bản nào, và những điều mà các nhà phát triển xây dựng quy trình tự động hóa cần hiểu về cả hai.
reCAPTCHA là một dịch vụ miễn phí từ Google được thiết kế để phân biệt người dùng thật với các bot tự động. Nó ban đầu được mua lại từ Đại học Carnegie Mellon vào năm 2009 và đã có nhiều phiên bản chính sau đó.
Theo tài liệu chính thức về reCAPTCHA của Google, các phiên bản hiện tại đang hoạt động là v2 (với hai loại con) và v3, mỗi phiên bản nhắm đến một sự cân bằng khác nhau giữa bảo mật và trải nghiệm người dùng. Một tầng thứ tư — reCAPTCHA Enterprise — xây dựng trên v3 với các tín hiệu rủi ro bổ sung và nhắm đến các triển khai thương mại quy mô lớn.
Hiểu được sự khác biệt giữa reCAPTCHA v2 và v3 bắt đầu bằng việc hiểu vấn đề mà mỗi phiên bản được thiết kế để giải quyết.
reCAPTCHA v2 là phiên bản mà hầu hết người dùng nhận biết. Nó hiển thị một thách thức rõ ràng mà người dùng phải hoàn thành trước khi gửi biểu mẫu.
Khi người dùng truy cập trang được bảo vệ bởi reCAPTCHA v2, widget sẽ tải và phân tích các tín hiệu thụ động — chuyển động chuột, lịch sử duyệt web, cookie. Nếu hệ thống tự tin rằng người dùng là con người, nó có thể tự động cho phép họ. Nếu không, nó sẽ hiển thị một thách thức.
Có hai loại con của reCAPTCHA v2:
1. Checkbox ("Tôi không phải là robot")
Người dùng nhấp vào checkbox. Nếu các tín hiệu thụ động không đủ, một thách thức lưới hình ảnh sẽ xuất hiện (ví dụ: "chọn tất cả đèn giao thông"). Đây là hình thức reCAPTCHA v2 dễ nhận biết nhất.
2. reCAPTCHA v2 không hiển thị
Không có checkbox nào được hiển thị. Thách thức sẽ kích hoạt tự động khi người dùng gửi biểu mẫu. Nếu điểm số rủi ro quá thấp, một thách thức trực quan sẽ xuất hiện. Phiên bản này giảm thiểu sự khó chịu cho người dùng trong khi vẫn duy trì cơ chế thách thức v2.
| Thuộc tính | reCAPTCHA v2 Checkbox | reCAPTCHA v2 Không hiển thị |
|---|---|---|
| Tương tác người dùng | Luôn hiển thị | Chỉ khi được kích hoạt |
| Loại thách thức | Lưới hình ảnh / âm thanh | Lưới hình ảnh / âm thanh |
| Thời hạn token | 2 phút | 2 phút |
| Độ phức tạp triển khai | Thấp | Trung bình |
| Sự khó chịu cho người dùng | Cao | Trung bình |
Token được tạo ra từ một thách thức v2 thành công sẽ được gửi đến máy chủ của bạn và xác minh thông qua API siteverify của Google. Phản hồi là nhị phân: hợp lệ hoặc không hợp lệ. Không có điểm số nào được cung cấp.
reCAPTCHA v3 tiếp cận hoàn toàn khác biệt. Nó không bao giờ hiển thị thách thức cho người dùng. Thay vào đó, nó hoạt động liên tục ở nền, thu thập các tín hiệu hành vi và trả về một điểm đánh giá rủi ro từ 0.0 đến 1.0.
Bạn chèn script reCAPTCHA v3 trên mọi trang bạn muốn giám sát. Script thu thập các tín hiệu — mẫu tương tác, thời gian, dấu vân tay thiết bị — và khi bạn gọi grecaptcha.execute(), nó sẽ trả về một token. Máy chủ của bạn gửi token đó đến điểm cuối siteverify của Google và nhận được phản hồi JSON bao gồm:
đăng nhập, thanh toán)Theo tài liệu reCAPTCHA v3 của Google, điểm đánh giá 0.5 là ngưỡng được khuyến nghị mặc định, nhưng Google nêu rõ rằng bạn nên điều chỉnh ngưỡng này dựa trên dữ liệu truy cập của riêng mình.
Điểm đánh giá không phải là kết luận "đạt" hoặc "rớt". Đó là tín hiệu rủi ro. Ứng dụng của bạn quyết định cách xử lý:
Tính linh hoạt này mạnh mẽ, nhưng cũng đồng nghĩa với việc reCAPTCHA v3 yêu cầu nhiều logic phía máy chủ hơn so với v2.
Dưới đây là so sánh cấu trúc giữa hai phiên bản theo các chiều quan trọng nhất đối với quyết định triển khai.
| Yếu tố | reCAPTCHA v2 | reCAPTCHA v3 |
|---|---|---|
| Thách thức hiển thị cho người dùng | Có (checkbox / lưới hình ảnh) | Không |
| Đầu ra | Nhị phân (token đạt/rớt) | Điểm số (0.0–1.0) |
| Sự khó chịu cho người dùng | Cao | Không có |
| Rủi ro điểm số sai | Thấp (xác nhận rõ ràng) | Trung bình (cần điều chỉnh ngưỡng điểm số) |
| Nỗ lực triển khai | Thấp | Trung bình–Cao |
| Logic phía máy chủ cần thiết | Tối thiểu | Bắt buộc |
| Phù hợp với các hành động rủi ro cao | Có | Với việc điều chỉnh ngưỡng cẩn thận |
| Phù hợp với giám sát thụ động | Không | Có |
| Thời hạn token | 2 phút | 2 phút |
| Hoạt động mà không cần tương tác người dùng | Không (v2 không hiển thị: một phần) | Có |
Sự khác biệt cốt lõi giữa reCAPTCHA v2 và v3 nằm ở nơi ra quyết định được thực hiện. Trong v2, Google đưa ra quyết định và hiển thị thách thức nếu cần. Trong v3, Google cung cấp tín hiệu và ứng dụng của bạn đưa ra quyết định.
reCAPTCHA v2 là lựa chọn đúng đắn khi:
Phiên bản checkbox đặc biệt phù hợp với các biểu mẫu nơi người dùng đã dừng lại để điền thông tin. Sự khó chịu thêm do thách thức CAPTCHA ít gây gián đoạn hơn trong bối cảnh này.
reCAPTCHA v3 là lựa chọn đúng đắn khi:
Nhiều hệ thống sản xuất sử dụng reCAPTCHA v3 như lớp đầu tiên và chuyển sang reCAPTCHA v2 khi điểm số dưới ngưỡng. Cách tiếp cận kết hợp này được khuyến nghị rõ ràng trong FAQ reCAPTCHA của Google.
Hiểu được sự khác biệt giữa reCAPTCHA v2 và v3 cũng đồng nghĩa với việc biết được những sai lầm mà các nhà phát triển thường mắc phải.
Sai lầm 1: Sử dụng ngưỡng v3 cố định mà không điều chỉnh
Ngưỡng mặc định của Google là 0.5, không phải quy tắc tuyệt đối. Các trang web có mô hình lưu lượng bất thường (ví dụ: sử dụng nhiều thiết bị di động, khán giả quốc tế) có thể cần điều chỉnh đáng kể.
Sai lầm 2: Xem v3 như là thay thế trực tiếp cho v2
Chúng giải quyết các vấn đề khác nhau. Thay thế v2 bằng v3 trên biểu mẫu rủi ro cao mà không thêm xử lý điểm số phía máy chủ sẽ tạo ra một lỗ hổng bảo mật.
Sai lầm 3: Không xác minh nhãn hành động
Token reCAPTCHA v3 bao gồm tên hành động bạn định nghĩa. Nếu bạn không xác minh rằng hành động khớp với mong đợi của mình, một token được tạo trên trang này có thể được lặp lại trên trang khác.
Sai lầm 4: Đặt cache hoặc sử dụng lại token
Cả token v2 và v3 đều chỉ sử dụng một lần và hết hạn sau 2 phút. Sử dụng lại token sẽ luôn thất bại trong việc xác minh.
Nhà phát triển xây dựng các công cụ quét web, bộ kiểm thử tự động, quy trình RPA hoặc công cụ thu thập dữ liệu thường xuyên gặp phải reCAPTCHA v2 và v3 trên các trang đích. Cả hai phiên bản đều được thiết kế để phát hiện các mẫu tương tác không phải con người, điều đó có nghĩa là các khung phần mềm tự động thông thường thường kích hoạt thách thức hoặc nhận được điểm số thấp từ v3.
Đối với các trường hợp sử dụng tự động hợp pháp — như kiểm thử trình duyệt tự động cho ứng dụng web của bạn, quét web để nghiên cứu thị trường hoặc theo dõi thứ hạng SEO — CapSolver cung cấp API chương trình hóa để xử lý tạo token cho cả reCAPTCHA v2 và v3.
CapSolver sử dụng nhận dạng dựa trên AI để trả về các token hợp lệ có thể được gửi đến điểm cuối xác minh của trang đích. Điều này đặc biệt hữu ích khi bạn cần giải các thách thức reCAPTCHA v2 hoặc xử lý yêu cầu điểm số reCAPTCHA v3 trong quy trình tự động hóa.
Một tích hợp cơ bản với API của CapSolver cho reCAPTCHA v2 như sau (ví dụ Python từ tài liệu chính thức của CapSolver):
import capsolver
capsolver.api_key = "YOUR_API_KEY"
solution = capsolver.solve({
"type": "ReCaptchaV2Task",
"websiteURL": "https://example.com",
"websiteKey": "YOUR_SITE_KEY",
})
print(solution["gRecaptchaResponse"])
Đối với reCAPTCHA v3, loại nhiệm vụ thay đổi thành ReCaptchaV3Task và bạn cung cấp tham số pageAction để khớp với hành động được định nghĩa trên trang đích. Luôn đảm bảo rằng trường hợp tự động hóa của bạn tuân thủ các điều khoản dịch vụ của trang đích và các quy định dữ liệu liên quan.
Nhận Mã Thưởng CapSolver của Bạn
Tăng ngân sách tự động hóa của bạn ngay lập tức!
Sử dụng mã thưởng CAP26 khi nạp tiền vào tài khoản CapSolver để nhận thêm 5% thưởng cho mỗi lần nạp — không giới hạn.
Nhận mã thưởng ngay bây giờ trong Bảng điều khiển CapSolver
Đây là câu hỏi phổ biến, và câu trả lời là phức tạp.
reCAPTCHA v2 cung cấp cổng kiểm tra cứng hơn — một bot phải giải một thách thức trực quan hoặc âm thanh để tiếp tục. Điều này chống lại các cuộc tấn công tự động đơn giản tốt hơn. Tuy nhiên, nó cũng gây gián đoạn nhiều hơn cho người dùng hợp pháp và có thể được giải bởi các dịch vụ chuyên dụng.
reCAPTCHA v3 cung cấp phạm vi bảo vệ rộng hơn — nó giám sát hành vi trên toàn bộ phiên, không chỉ tại điểm gửi biểu mẫu. Một bot tinh vi vượt qua thách thức v2 một lần là xong; một bot hoạt động trên trang được bảo vệ bởi v3 phải duy trì hành vi giống người dùng thật liên tục.
Trong thực tế, các nhà nghiên cứu bảo mật tại USENIX Security 2023 đã phát hiện ra rằng các hệ thống CAPTCHA hành vi như v3 hiệu quả hơn trong việc chống lại các cuộc tấn công tự động quy mô lớn khi được điều chỉnh đúng, nhưng lại dễ bị tấn công có chủ đích mô phỏng hành vi người dùng.
Các triển khai an toàn nhất sử dụng cả hai: v3 để giám sát và v2 như một thách thức tăng cường khi điểm số dưới ngưỡng chấp nhận được.
Sự khác biệt giữa reCAPTCHA v2 và v3 không phải là phiên bản nào mới hơn hay tốt hơn — đó là về mô hình nào phù hợp với kiến trúc bảo mật của bạn. reCAPTCHA v2 cung cấp cổng kiểm tra nhị phân rõ ràng với các thách thức hiển thị cho người dùng. reCAPTCHA v3 cung cấp tín hiệu rủi ro liên tục mà không làm gián đoạn người dùng, nhưng yêu cầu xử lý phía máy chủ phức tạp hơn.
Đối với hầu hết các ứng dụng sản xuất, câu trả lời không phải là reCAPTCHA v2 hay v3, mà là sử dụng cả hai cùng nhau. Sử dụng v3 để giám sát và đánh giá, và chuyển sang v2 khi tín hiệu rủi ro yêu cầu thách thức khó hơn.
Nếu bạn đang xây dựng các công cụ tự động hóa cần tương tác với bất kỳ phiên bản nào — để kiểm thử, thu thập dữ liệu hoặc tự động hóa quy trình — API của CapSolver hỗ trợ cả hai loại nhiệm vụ reCAPTCHA v2 và v3 với thời gian phản hồi nhanh và tích hợp đơn giản. Bạn có thể khám phá tài liệu đầy đủ tại capsolver.com.
Câu hỏi 1: Tôi có thể sử dụng reCAPTCHA v3 mà không có cơ chế dự phòng không?
Có, nhưng không được khuyến khích cho các hành động rủi ro cao. Không có cơ chế dự phòng, người dùng nhận được điểm số thấp sẽ bị chặn hoặc đánh dấu một cách im lặng, không có cách nào để chứng minh họ là người thật. Cơ chế dự phòng v2 cung cấp con đường cho người dùng hợp pháp.
Câu hỏi 2: reCAPTCHA v3 có làm chậm trang web của tôi không?
Script reCAPTCHA v3 thêm một lượng nhỏ JavaScript vào mỗi trang mà nó được tải. Google báo cáo kích thước script khoảng 35KB. Đối với hầu hết các trang web, tác động hiệu suất là không đáng kể, nhưng điều này đáng để đo lường trên các trang nơi thời gian tải là yếu tố quan trọng.
Câu hỏi 3: Sự khác biệt giữa reCAPTCHA v2 không hiển thị và reCAPTCHA v3 là gì?
Cả hai đều tránh hiển thị thách thức trừ khi cần thiết, nhưng chúng hoạt động khác nhau. reCAPTCHA v2 không hiển thị vẫn sử dụng cơ chế thách thức v2 — nó sẽ hiển thị lưới hình ảnh nếu tín hiệu thụ động không đủ. reCAPTCHA v3 không bao giờ hiển thị thách thức; nó chỉ trả về điểm số. Quyết định về việc làm gì với điểm số thấp hoàn toàn do ứng dụng của bạn quyết định.
Câu hỏi 4: Làm thế nào để chọn ngưỡng điểm số v3 phù hợp?
Bắt đầu với ngưỡng được khuyến nghị của Google là 0.5, sau đó phân tích dữ liệu lưu lượng truy cập trong 1–2 tuần. Xem xét phân phối điểm số cho người dùng đã biết là hợp lệ (đã đăng nhập, tài khoản được xác minh) so với lưu lượng truy cập ẩn danh. Điều chỉnh ngưỡng để giảm thiểu điểm số sai cho cơ sở người dùng cụ thể của bạn.
Câu hỏi 5: reCAPTCHA v3 có tuân thủ GDPR không?
reCAPTCHA v3 thu thập dữ liệu hành vi và gửi nó đến máy chủ của Google, điều này đặt ra các vấn đề về quyền riêng tư dữ liệu theo GDPR. Bạn nên công khai việc sử dụng reCAPTCHA trong chính sách bảo mật của mình và, tùy theo khu vực pháp lý của bạn, có thể cần thu thập sự đồng thuận của người dùng trước khi tải script. Tham khảo nhóm pháp lý của bạn để có hướng dẫn cụ thể cho triển khai của bạn.