So Sánh

reCAPTCHA Enterprise và Standard: khác biệt thực sự cho dev

Thấy trang mục tiêu đổi từ api.js sang enterprise.js? Request giải chỉ cần thêm enterprise=1. Phần còn lại — sitekey, pageurl, polling kết quả, đặt token vào form — giữ nguyên.

Khác biệt lớn nằm ở phía chủ website: Enterprise là bản trả phí trên Google Cloud, thêm mã lý do (reason codes), ngưỡng rủi ro theo từng action và tính năng bảo vệ tài khoản.


Vì sao một site chuyển sang Enterprise

Lý do nâng cấp Thứ thay đổi trên site
Tích hợp WAF reCAPTCHA nối thẳng vào WAF của Cloudflare/Akamai
Phân tích chi tiết Dashboard hiển thị xu hướng rủi ro và mẫu tấn công
Quy tắc riêng Mỗi action một ngưỡng điểm khác nhau
Tuân thủ SLA doanh nghiệp và tùy chọn nơi lưu trữ dữ liệu
Bảo vệ tài khoản Phát hiện rò rỉ mật khẩu và chiếm đoạt tài khoản

Tất cả nằm ở tầng quyết định: thử thách không khó hơn, site chỉ khắt khe hơn khi đọc điểm.


Bảng so sánh Standard và Enterprise

Tính năng Standard Enterprise
Giá Miễn phí (tối đa 1 triệu assessment/tháng) $1 cho mỗi 1.000 assessment (1K–100K/tháng), trên mức đó tính bậc
Phạm vi điểm 0,0–1,0 0,0–1,0
Mã lý do Không Có (AUTOMATION, UNEXPECTED_ENVIRONMENT, v.v.)
Ngưỡng tùy chỉnh Không (tự đặt trong code) Có (cấu hình theo từng action trong console)
Quản lý theo project Không Có (Google Cloud Console)
Endpoint API siteverify recaptchaenterprise.googleapis.com
Phát hiện rò rỉ mật khẩu Không
Account Defender Không
Xác thực đa yếu tố Không Có (qua tích hợp WAF)
Hỗ trợ v2
Hỗ trợ v3

Điểm số thì giống nhau, mã lý do thì không

Cả hai trả về điểm 0,0–1,0; khác nhau ở ngữ cảnh đi kèm. Phản hồi Standard rất gọn:

{
  "success": true,
  "score": 0.7,
  "action": "login",
  "challenge_ts": "2024-01-15T12:00:00Z",
  "hostname": "example.com"
}

Enterprise trả về cấu trúc lồng nhau, tách token khỏi phần phân tích rủi ro:

{
  "tokenProperties": {
    "valid": true,
    "action": "login",
    "createTime": "2024-01-15T12:00:00Z",
    "hostname": "example.com"
  },
  "riskAnalysis": {
    "score": 0.7,
    "reasons": ["LOW_CONFIDENCE_SCORE"],
    "extendedVerdictReasons": []
  },
  "event": {
    "token": "...",
    "siteKey": "...",
    "expectedAction": "login"
  }
}

Mảng reasons cho site biết vì sao điểm như vậy, nên backend xử lý theo nhiều mức thay vì chỉ chặn hoặc cho qua. JSON này nằm ở server của site; phía script, kết quả vẫn chỉ là token g-recaptcha-response.


Nhận biết Enterprise ngay trên trang

Bốn dấu hiệu là đủ:

Dấu hiệu Standard Enterprise
URL script google.com/recaptcha/api.js google.com/recaptcha/enterprise.js
Hàm thực thi grecaptcha.execute() grecaptcha.enterprise.execute()
API xác minh Endpoint siteverify recaptchaenterprise.googleapis.com
Console quản trị reCAPTCHA admin console Google Cloud Console

Kiểm tra thẻ script trong source:

// Standard
<script src="https://www.google.com/recaptcha/api.js?render=SITEKEY"></script>

// Enterprise
<script src="https://www.google.com/recaptcha/enterprise.js?render=SITEKEY"></script>
  • Đưa bước tìm chuỗi enterprise.js vào smoke test hằng ngày.
  • Cảnh báo ngay khi chuỗi đổi: thẻ script đổi trước, job giải báo lỗi sau.

Gửi task giải bằng CaptchaAI

CaptchaAI hỗ trợ cả v2 và v3, Standard lẫn Enterprise. Với reCAPTCHA v3 Standard:

resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY, "method": "userrecaptcha", "version": "v3",
    "googlekey": SITEKEY, "action": "login", "pageurl": URL, "json": 1
})

Bản Enterprise — thêm đúng một dòng:

resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY, "method": "userrecaptcha", "version": "v3",
    "enterprise": 1,  # Only difference
    "googlekey": SITEKEY, "action": "login", "pageurl": URL, "json": 1
})

Với reCAPTCHA v2 bản Standard:

resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY, "method": "userrecaptcha",
    "googlekey": SITEKEY, "pageurl": URL, "json": 1
})

Và v2 bản Enterprise:

resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY, "method": "userrecaptcha",
    "enterprise": 1,
    "googlekey": SITEKEY, "pageurl": URL, "json": 1
})
  • Phần còn lại giữ nguyên: nhận ID task, polling res.php, đặt token vào form.
  • CaptchaAI tính giá theo thread (luồng giải đồng thời), không theo lần giải.
  • Không có phụ phí theo loại CAPTCHA: gói BASIC ($15/tháng, 5 thread) chạy Enterprise y hệt Standard.

Tình huống thực tế: đội QA thương mại điện tử ở TP.HCM

Đội bạn theo dõi giá và tồn kho cho danh mục sản phẩm của chính công ty trên vài sàn trong nước. Sáng thứ Hai, tỷ lệ lỗi tăng vọt ở đúng một nguồn. Quy trình chẩn đoán:

  1. Mở trang bằng trình duyệt có giao diện, xem source, kiểm tra api.js hay enterprise.js.
  2. Nếu là enterprise.js, lấy lại sitekey — key Enterprise tạo trong Google Cloud Console nên chắc chắn đã đổi.
  3. Thêm enterprise: 1 vào request tới in.php, đối chiếu action với giá trị trang truyền vào grecaptcha.enterprise.execute().
  4. Chạy lại một lô nhỏ trên staging trước khi bật toàn bộ job.

Đội outsourcing chạy nhiều crawler nên ghi log thời điểm đổi script — dữ liệu này có ích cho hồ sơ tuân thủ theo Nghị định 13/2023/NĐ-CP.


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

Enterprise có phải là một phiên bản khác của reCAPTCHA v3 không?

Không. Enterprise là gói sản phẩm, không phải phiên bản: cả v2 lẫn v3 đều có bản Enterprise, nên giữ nguyên version rồi thêm enterprise=1.

Điểm 0,3 trên Enterprise có nghĩa là request bị chặn không?

Chưa chắc. Ngưỡng do chủ site đặt theo từng action: 0,3 có thể bị chặn ở luồng đăng nhập nhưng vẫn qua ở tìm kiếm.

Site đổi sang Enterprise thì code của tôi hỏng ở chỗ nào?

Thường là hai chỗ: sitekey cũ hết hiệu lực và request thiếu cờ enterprise=1. Biểu hiện giống nhau — có token nhưng form bị từ chối — nên kiểm tra sitekey trước.


Bài viết liên quan

Os comentários estão desativados para este artigo.