Phân Tích Kỹ Thuật

Phân tích sâu API đánh giá doanh nghiệp reCAPTCHA

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
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.js thay vì .../recaptcha/api.js
  • Đối tượng API là grecaptcha.enterprise thay 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

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