reCAPTCHA Enterprise là dịch vụ CAPTCHA cao cấp của Google mở rộng reCAPTCHA v3 với phân tích rủi ro chi tiết, lý do ghi điểm, tín hiệu phát hiện gian lận và khả năng bảo vệ tài khoản. Không giống như phiên bản miễn phí tiêu chuẩn chỉ trả về điểm và hành động, Enterprise cung cấp các đánh giá có thể giải thích được với các yếu tố rủi ro cụ thể. Hướng dẫn này bao gồm kiến trúc API đánh giá doanh nghiệp, cấu trúc phản hồi và cách xử lý các trang web được doanh nghiệp bảo vệ trong tự động hóa.
Doanh nghiệp so với reCAPTCHA tiêu chuẩn
| tính năng | reCAPTCHA v3 (miễn phí) | reCAPTCHA doanh nghiệp |
|---|---|---|
| Tính điểm | Điểm 0,0-1,0 | Điểm 0,0-1,0 + lý do ghi điểm |
| Phân tích rủi ro | Cơ bản | Chi tiết (tín hiệu lừa đảo, thông tin tài khoản) |
| Lý do ghi điểm | Không được cung cấp | Lý do cụ thể giải thích điểm số |
| Người bảo vệ tài khoản | Không | Có (theo dõi vòng đời tài khoản) |
| Tích hợp WAF | Không | Có (Cloudflare, Nhanh chóng, F5) |
| Đánh giá nhanh | Không | Có (chỉ phía máy chủ, không có JS) |
| Phát hiện rò rỉ mật khẩu | Không | Có |
| Giá cả | Miễn phí (1 triệu đánh giá/month) | 1 USD trên 1000 đánh giá (miễn phí 0-1 triệu) |
| Điểm cuối API | google.com/recaptcha/api/siteverify | recaptchaenterprise.googleapis.com |
Luồng API đánh giá doanh nghiệp
Client-side:
1. Load reCAPTCHA Enterprise script
2. Call grecaptcha.enterprise.execute(SITE_KEY, {action: 'LOGIN'})
3. Receive token
4. Send token to your backend
Server-side:
1. Create assessment via Enterprise API
2. Receive detailed risk analysis
3. Make access decision based on score + reasons
4. Optionally annotate the assessment (report fraud/legitimate)
Tích hợp phía khách hàng
SDK JavaScript
<script src="https://www.google.com/recaptcha/enterprise.js?render=SITE_KEY"></script>
<script>
grecaptcha.enterprise.ready(function() {
grecaptcha.enterprise.execute('SITE_KEY', { action: 'LOGIN' })
.then(function(token) {
// Send token to backend
fetch('/api/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token: token })
});
});
});
</script>
Sự khác biệt chính so với reCAPTCHA v3 tiêu chuẩn:
- URL tập lệnh sử dụng
.../recaptcha/enterprise.jsthay vì.../recaptcha/api.js - Đối tượng API là
grecaptcha.enterprisethay vìgrecaptcha execute()trả về cùng định dạng mã thông báo
Phát hiện trong nguồn trang
import requests
import re
def detect_recaptcha_enterprise(url):
"""Detect if a page uses reCAPTCHA Enterprise."""
html = requests.get(url, timeout=10).text
indicators = {
"is_enterprise": False,
"is_standard": False,
"site_key": None,
"actions": [],
}
# Enterprise detection
if "recaptcha/enterprise.js" in html:
indicators["is_enterprise"] = True
match = re.search(r"render=([A-Za-z0-9_-]+)", html)
if match:
indicators["site_key"] = match.group(1)
# Standard v3 detection
elif "recaptcha/api.js?render=" in html:
indicators["is_standard"] = True
match = re.search(r"render=([A-Za-z0-9_-]+)", html)
if match:
indicators["site_key"] = match.group(1)
# Extract action names
actions = re.findall(r"action:\s*['\"](\w+)['\"]", html)
indicators["actions"] = list(set(actions))
return indicators
print(detect_recaptcha_enterprise("https://staging.example.com/qa-login"))
API đánh giá phía máy chủ
Tạo đánh giá (Google Cloud API)
from google.cloud import recaptchaenterprise_v1
from google.cloud.recaptchaenterprise_v1 import Assessment
def create_assessment(project_id, site_key, token, action):
"""Create a reCAPTCHA Enterprise assessment."""
client = recaptchaenterprise_v1.RecaptchaEnterpriseServiceClient()
event = recaptchaenterprise_v1.Event()
event.site_key = site_key
event.token = token
event.expected_action = action
assessment = recaptchaenterprise_v1.Assessment()
assessment.event = event
request = recaptchaenterprise_v1.CreateAssessmentRequest()
request.assessment = assessment
request.parent = f"projects/{project_id}"
response = client.create_assessment(request)
return response
Cấu trúc phản hồi đánh giá
{
"name": "projects/123456/assessments/abcdef123",
"event": {
"token": "...",
"siteKey": "6Le...",
"expectedAction": "LOGIN",
"hashedAccountId": "abc123..."
},
"riskAnalysis": {
"score": 0.9,
"reasons": [
"AUTOMATION",
"TOO_MUCH_TRAFFIC"
],
"extendedVerdictReasons": [
"BROWSER_ERROR"
]
},
"tokenProperties": {
"valid": true,
"hostname": "example.com",
"action": "LOGIN",
"createTime": "2025-01-15T10:30:00Z",
"invalidReason": ""
},
"accountDefenderAssessment": {
"labels": ["PROFILE_MATCH"]
}
}
Lý do ghi điểm doanh nghiệp
Doanh nghiệp đưa ra lý do cụ thể giải thích tại sao điểm thấp:
| Lý do | Mô tả | Tác động đến điểm số |
|---|---|---|
AUTOMATION |
Đã phát hiện tác nhân người dùng tự động hoặc trình duyệt không có giao diện người dùng | -0,3 đến -0,7 |
UNEXPECTED_ENVIRONMENT |
Sự không nhất quán trong môi trường trình duyệt hoặc thiết bị | -0,2 đến -0,4 |
TOO_MUCH_TRAFFIC |
Khối lượng yêu cầu cao từ IP hoặc phiên này | -0,1 đến -0,3 |
UNEXPECTED_USAGE_PATTERNS |
Tín hiệu hành vi đi chệch khỏi chuẩn mực của con người | -0,2 đến -0,5 |
LOW_CONFIDENCE_SCORE |
Không đủ dữ liệu để đưa ra đánh giá chắc chắn | Biến |
SUSPECTED_CARDING |
Mẫu giao dịch khớp với gian lận thẻ tín dụng | -0,3 đến -0,6 |
SUSPECTED_CHARGEBACK |
Rủi ro bồi hoàn dựa trên tín hiệu giao dịch | -0,2 đến -0,4 |
Lý do phán quyết mở rộng (chi tiết bổ sung)
| Lý do | Mô tả |
|---|---|
BROWSER_ERROR |
Lỗi thực thi JavaScript trong CAPTCHA SDK |
SITE_MISMATCH |
Mã thông báo được tạo cho trang web khác với mã được xác thực trên |
FAILED_TWO_FACTOR |
Xác thực hai yếu tố gần đây không thành công |
Người bảo vệ tài khoản
Trình bảo vệ tài khoản của doanh nghiệp theo dõi tài khoản người dùng trong suốt vòng đời của họ:
{
"accountDefenderAssessment": {
"labels": [
"PROFILE_MATCH",
"SUSPICIOUS_LOGIN_ACTIVITY",
"SUSPICIOUS_ACCOUNT_CREATION",
"RELATED_ACCOUNTS_NUMBER_HIGH"
]
}
}
| Nhãn | Ý nghĩa |
|---|---|
PROFILE_MATCH |
Hành vi khớp với hồ sơ đã biết của tài khoản này |
SUSPICIOUS_LOGIN_ACTIVITY |
Mẫu đăng nhập khác với bình thường (thiết bị mới, vị trí) |
SUSPICIOUS_ACCOUNT_CREATION |
Việc tạo tài khoản có vẻ tự động |
RELATED_ACCOUNTS_NUMBER_HIGH |
Nhiều tài khoản được liên kết với cùng một thiết bị/session |
Tích hợp WAF
reCAPTCHA Enterprise tích hợp với các nhà cung cấp WAF để thêm các thử thách CAPTCHA ở biên mạng:
Tích hợp WAF của Cloudflare
Request arrives at Cloudflare edge
↓
Cloudflare WAF rule evaluates request
↓
Rule triggers reCAPTCHA Enterprise challenge
↓
Client solves CAPTCHA → token returned
↓
Cloudflare validates token via Enterprise API
↓
If valid + score above threshold → request forwarded to origin
Tích hợp BIG-IP F5
F5 iRule or policy evaluates request
↓
Triggers reCAPTCHA Enterprise challenge page
↓
Client solves → token validated server-side
↓
F5 forwards or blocks based on assessment score
Xử lý reCAPTCHA doanh nghiệp trong tự động hóa
CaptchaAI giải quyết Enterprise giống như reCAPTCHA tiêu chuẩn
Từ góc độ bộ giải API, mã thông báo reCAPTCHA Enterprise hoạt động giống hệt với mã thông báo reCAPTCHA tiêu chuẩn:
import requests
import time
API_KEY = "YOUR_API_KEY"
# Enterprise is solved with the same method
# The solver handles the Enterprise variant automatically
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6LcR_RsTAAAAAN_r0GEkGBfq3L7KmU5JbPHJtwNp",
"pageurl": "https://enterprise-site.com/login",
"enterprise": 1, # Flag for Enterprise variant
"json": 1,
})
task_id = submit.json()["request"]
for _ in range(60):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY,
"action": "get",
"id": task_id,
"json": 1,
}).json()
if result.get("status") == 1:
token = result["request"]
print(f"Enterprise token: {token[:50]}...")
break
Node.js
const axios = require("axios");
async function solveEnterprise(sitekey, pageurl) {
const API_KEY = "YOUR_API_KEY";
const { data: submit } = await axios.post(
"https://ocr.captchaai.com/in.php",
new URLSearchParams({
key: API_KEY,
method: "userrecaptcha",
googlekey: sitekey,
pageurl: pageurl,
enterprise: 1,
json: 1,
})
);
const taskId = submit.request;
for (let i = 0; i < 60; i++) {
await new Promise(r => setTimeout(r, 5000));
const { data: result } = await axios.get(
"https://ocr.captchaai.com/res.php",
{ params: { key: API_KEY, action: "get", id: taskId, json: 1 } }
);
if (result.status === 1) return result.request;
}
throw new Error("Timeout");
}
Cách phát hiện Doanh nghiệp so với tiêu chuẩn trên trang đích
def identify_recaptcha_version(html):
"""Determine which reCAPTCHA version a page uses."""
if "recaptcha/enterprise.js" in html:
return "enterprise"
elif "recaptcha/api.js?render=" in html:
return "v3"
elif "g-recaptcha" in html and 'data-size="invisible"' in html:
return "v2_invisible"
elif "g-recaptcha" in html:
return "v2"
else:
return "none"
Khắc phục sự cố doanh nghiệp
| vấn đề | Chẩn đoán | Giải pháp |
|---|---|---|
| Mã thông báo bị API doanh nghiệp từ chối | Sử dụng phương pháp tiêu chuẩn cho trang Doanh nghiệp | Thêm enterprise=1 vào yêu cầu giải quyết |
| Điểm luôn là 0,1 mặc dù mã thông báo hợp lệ | Tham số hành động không khớp | Xác minh action khớp với những gì trang gửi |
| "SITE_MISMATCH" trong các lý do | Mã thông báo được tạo cho tên miền sai | Đảm bảo pageurl khớp chính xác với mục tiêu |
| "TỰ ĐỘNG" trong lý do ghi điểm | Đã phát hiện thấy môi trường bộ giải | CaptchaAI xử lý việc này — nếu vẫn còn, hãy liên hệ với bộ phận hỗ trợ |
| Mã thông báo hợp lệ nhưng trang web vẫn chặn | Trang web sử dụng các biện pháp kiểm tra bổ sung ngoài CAPTCHA | Kiểm tra các lớp phát hiện bot khác (WAF, vân tay) |
Câu hỏi thường gặp
ReCAPTCHA Enterprise có khó giải quyết hơn reCAPTCHA tiêu chuẩn không?
Quá trình tạo mã thông báo là như nhau. Enterprise bổ sung thêm các tính năng phân tích phía máy chủ (lý do tính điểm, Người bảo vệ tài khoản) nhưng thử thách phía máy khách thì giống hệt nhau. Trình giải mã API tạo mã thông báo cho Doanh nghiệp giống như cách họ làm với các phiên bản tiêu chuẩn.
Tôi có cần tài khoản Google Cloud để giải CAPTCHA doanh nghiệp không?
Không. Là nhà phát triển tự động hóa giải CAPTCHA doanh nghiệp trên các trang web mục tiêu, bạn chỉ cần sitekey từ trang và trình giải API như CaptchaAI. Nhà điều hành trang web cần có tài khoản Google Cloud để xác thực các đánh giá chứ không phải người giải CAPTCHA.
Làm cách nào để biết một trang web sử dụng reCAPTCHA doanh nghiệp hay tiêu chuẩn?
Kiểm tra URL tập lệnh. Doanh nghiệp sử dụng recaptcha/enterprise.js trong khi tiêu chuẩn sử dụng recaptcha/api.js. Tên đối tượng API JavaScript cũng khác nhau: grecaptcha.enterprise.execute() so với grecaptcha.execute().
Lý do chấm điểm Doanh nghiệp có thể được sử dụng để cải thiện khả năng tự động hóa của tôi không?
Nếu bạn vận hành trang đích (thử nghiệm việc triển khai CAPTCHA của riêng bạn), thì có — lý do sẽ cho bạn biết tín hiệu phát hiện nào đã kích hoạt. Nếu bạn đang giải CAPTCHA trên các trang web của bên thứ ba, bạn sẽ không thấy lý do — chỉ người điều hành trang web mới nhìn thấy chúng.
Tóm tắt
reCAPTCHA Enterprise mở rộng reCAPTCHA tiêu chuẩn với phân tích rủi ro chi tiết, lý do ghi điểm, Trình bảo vệ tài khoản và tích hợp WAF. Từ góc độ tự động hóa, CAPTCHA doanh nghiệp được giải quyết giống hệt với reCAPTCHA tiêu chuẩn — thêm tham số enterprise=1 vàoCaptchaAIYêu cầu API. Phát hiện Enterprise bằng cách kiểm tra recaptcha/enterprise.js trong nguồn trang. Sự khác biệt chính trong hoạt động là đảm bảo bạn chuyển cờ enterprise chính xác và tham số action phù hợp.
bài viết liên quan
- Cách giải quyết cuộc gọi lại Recaptcha V2 bằng Api
- Xử lý cửa quay Recaptcha V2 trên cùng một trang web
- Cách giải quyết Recaptcha V3 Enterprise bằng Api