Phân Tích Kỹ Thuật

Yêu cầu về cookie và phiên reCAPTCHA để giải quyết

reCAPTCHA dựa vào cookie để theo dõi phiên, chấm điểm rủi ro và quản lý trạng thái thử thách. Cookie bị thiếu hoặc xử lý không chính xác sẽ gây ra lỗi giải quyết, điểm thấp và thử thách lặp lại. Hướng dẫn này bao gồm mọi cách sử dụng cookie reCAPTCHA, cách các phiên ảnh hưởng đến việc tính điểm và cách quản lý cookie thực tế để tự động hóa.


bánh quy Tên miền Mục đích Trọn đời
_GRECAPTCHA .google.com Trạng thái reCAPTCHA trên nhiều trang web 6 tháng
rc::a Trang web mục tiêu Dữ liệu phân tích rủi ro (canvas, băm hành vi chuột) Phiên
rc::b Trang web mục tiêu Dữ liệu phân tích rủi ro (tín hiệu hành vi) Phiên
rc::c Trang web mục tiêu Dữ liệu phân tích rủi ro (thời gian) Phiên
rc::d-15# Trang web mục tiêu Thử thách sự kiên trì của trạng thái Phiên
bánh quy Tên miền Mục đích Tác động đến điểm số
SID .google.com ID phiên Google +0,1 đến +0,3
HSID .google.com ID phiên chỉ HTTP Một phần của phiên tin cậy
SSID .google.com ID phiên an toàn Một phần của phiên tin cậy
NID .google.com Tùy chọn Google/session +0,05 đến +0,1
1P_JAR .google.com Cá nhân hóa quảng cáo Google Tín hiệu tin cậy nhỏ
bánh quy Tên miền Mục đích
CONSENT .google.com Trạng thái đồng ý cookie
AEC .google.com Cookie quảng cáo được mã hóa
SOCS .google.com Cài đặt đồng ý cookie

New browser session, all cookies cleared
    ↓
reCAPTCHA JavaScript loads
    ↓
No _GRECAPTCHA → First-time visitor signal
No SID/HSID → No Google account trust
No rc:: cookies → No behavioral history
    ↓
Starting risk score: lower baseline (0.3-0.5 for v3)
    ↓
Behavioral analysis must compensate for lack of history
    ↓
Result: More likely to receive visible challenge (v2)
         Lower score (v3)
Existing browser session with cookies
    ↓
reCAPTCHA JavaScript loads
    ↓
_GRECAPTCHA found → Returning visitor
SID/HSID found → Google account trust
rc:: cookies found → Previous behavioral data
    ↓
Starting risk score: higher baseline (0.5-0.7 for v3)
    ↓
Behavioral analysis reinforces cookie-based trust
    ↓
Result: More likely to auto-pass (v2)
         Higher score (v3)

Duy trì cookie theo các yêu cầu để tạo dựng sự tin cậy trong phiên:

import requests
import pickle
import os

class CookieManager:
    """Manage cookies for reCAPTCHA sessions."""

    def __init__(self, cookie_file="cookies.pkl"):
        self.cookie_file = cookie_file
        self.session = requests.Session()
        self.load_cookies()

    def load_cookies(self):
        """Load cookies from disk if they exist."""
        if os.path.exists(self.cookie_file):
            with open(self.cookie_file, "rb") as f:
                self.session.cookies = pickle.load(f)

    def save_cookies(self):
        """Save cookies to disk for next session."""
        with open(self.cookie_file, "wb") as f:
            pickle.dump(self.session.cookies, f)

    def visit_page(self, url):
        """Visit a page to collect cookies."""
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                          "AppleWebKit/537.36 (KHTML, like Gecko) "
                          "Chrome/120.0.0.0 Safari/537.36",
        }
        response = self.session.get(url, headers=headers, timeout=15)
        self.save_cookies()
        return response

    def get_recaptcha_cookies(self):
        """Get cookies relevant to reCAPTCHA."""
        relevant = {}
        for cookie in self.session.cookies:
            if cookie.name in ["_GRECAPTCHA", "SID", "HSID", "SSID", "NID"]:
                relevant[cookie.name] = {
                    "value": cookie.value[:20] + "...",
                    "domain": cookie.domain,
                    "expires": cookie.expires,
                }
            if cookie.name.startswith("rc::"):
                relevant[cookie.name] = {
                    "value": cookie.value[:20] + "...",
                    "domain": cookie.domain,
                }
        return relevant

# Usage
cm = CookieManager("recaptcha_session.pkl")
cm.visit_page("https://staging.example.com/qa-login")  # Build cookies
print(cm.get_recaptcha_cookies())
from selenium import webdriver
import json

def setup_cookies(driver, cookie_file="selenium_cookies.json"):
    """Load and apply saved cookies to a Selenium session."""
    if not os.path.exists(cookie_file):
        return

    with open(cookie_file, "r") as f:
        cookies = json.load(f)

    for cookie in cookies:
        # Selenium requires the domain to match current page
        try:
            driver.add_cookie(cookie)
        except Exception:
            pass  # Skip cookies for different domains

def save_cookies(driver, cookie_file="selenium_cookies.json"):
    """Save current cookies for future sessions."""
    cookies = driver.get_cookies()
    with open(cookie_file, "w") as f:
        json.dump(cookies, f)

# Usage
driver = webdriver.Chrome()
driver.get("https://example.com")
setup_cookies(driver)  # Apply saved cookies
driver.refresh()       # Reload with cookies

# After CAPTCHA solving...
save_cookies(driver)   # Save for next run
const puppeteer = require("puppeteer");
const fs = require("fs");

async function manageCookies(page, cookieFile = "cookies.json") {
    // Load cookies if file exists
    if (fs.existsSync(cookieFile)) {
        const cookies = JSON.parse(fs.readFileSync(cookieFile));
        await page.setCookie(...cookies);
    }

    // Save cookies after page interaction
    const saveCookies = async () => {
        const cookies = await page.cookies();
        fs.writeFileSync(cookieFile, JSON.stringify(cookies, null, 2));
    };

    return { saveCookies };
}

(async () => {
    const browser = await puppeteer.launch({ headless: false });
    const page = await browser.newPage();

    const { saveCookies } = await manageCookies(page);

    await page.goto("https://staging.example.com/qa-login");

    // ... solve CAPTCHA ...

    await saveCookies();
    await browser.close();
})();

Yêu cầu phiên để giải quyết dựa trên API

Khi sử dụng CaptchaAI, bộ giải sẽ tạo mã thông báo trong môi trường riêng của nó. Trang web mục tiêu xác thực mã thông báo mà không kiểm tra cookie của trình duyệt của bạn. Tuy nhiên, một số triển khai bổ sung thêm xác nhận:

reCAPTCHA tiêu chuẩn (hầu hết các trang web)

Không cần chuyển tiếp cookie. CaptchaAI tạo mã thông báo hợp lệ chỉ sử dụng sitekeypageurl:

import requests
import time

API_KEY = "YOUR_API_KEY"

# Standard solve — no cookies needed
submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://staging.example.com/qa-login",
    "json": 1,
})

Một số trang web có mức độ bảo mật cao xác thực rằng phiên gửi mã thông báo khớp với phiên đã tải tiện ích reCAPTCHA. Trong những trường hợp này:

  1. Tải trang trong trình duyệt thực để thiết lập cookie
  2. Trích xuất khóa trang web từ trang đã tải
  3. Gửi tới CaptchaAI bằng sitekey và pageurl
  4. Đưa mã thông báo được trả về vào cùng một phiên trình duyệt
  5. Gửi biểu mẫu từ trình duyệt (duy trì chuỗi cookie)
from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
import time

API_KEY = "YOUR_API_KEY"

# Step 1: Load page in real browser (establishes cookies)
driver = webdriver.Chrome()
driver.get("https://secure-site.com/login")

# Step 2: Extract sitekey
widget = driver.find_element(By.CSS_SELECTOR, "[data-sitekey]")
sitekey = widget.get_attribute("data-sitekey")

# Step 3: Solve via CaptchaAI
submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": sitekey,
    "pageurl": driver.current_url,
    "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"]
        break

# Step 4: Inject token into browser session (same cookies)
driver.execute_script(
    f'document.getElementById("g-recaptcha-response").value = "{token}";'
)

# Step 5: Submit form from same browser session
driver.find_element(By.CSS_SELECTOR, "form").submit()

Chrome đang loại bỏ dần cookie của bên thứ ba. Điều này ảnh hưởng đến reCAPTCHA vì _GRECAPTCHA được đặt trên .google.com và đọc từ ngữ cảnh của bên thứ ba.

Phản hồi của Google:

  • reCAPTCHA v3 và Enterprise sử dụng thực thi JavaScript của bên thứ nhất
  • Cookie đang chuyển sang bộ lưu trữ Partitioned (CHIPS)
  • Cookie rc:: đã là của bên thứ nhất (được đặt trên miền của trang đích)

Tác động đến tự động hóa:

  • Tối thiểu. Việc giải quyết dựa trên API không bị ảnh hưởng vì CaptchaAI tạo mã thông báo phía máy chủ.
  • Tự động hóa dựa trên trình duyệt có thể thấy những thay đổi nhỏ về điểm số khi Google điều chỉnh chiến lược cookie của mình.

vấn đề nguyên nhân Giải pháp
reCAPTCHA v2 luôn thể hiện sự thách thức về hình ảnh Không có cookie phiên, độ tin cậy thấp Cookie liên tục theo yêu cầu
Điểm reCAPTCHA v3 luôn < 0,3 Phiên mới mỗi lần Bảo quản lọ bánh quy
Mã thông báo hoạt động một lần rồi thử lại không thành công Cookie phiên không khớp Sử dụng cùng một phiên để tải và gửi trang
"Xác thực Cookie/session không thành công" Chuỗi cookie kiểm tra trang web Sử dụng tính năng chèn mã thông báo dựa trên trình duyệt
Tiện ích reCAPTCHA không tải Cookie của bên thứ ba bị chặn Cho phép cookie google.com

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

Không. CaptchaAI tạo mã thông báo trong môi trường được tối ưu hóa của riêng nó và không cần cookie trình duyệt của bạn. Bạn chỉ cần cung cấp sitekeypageurl. Mã thông báo được tạo có giá trị để gửi từ bất kỳ khách hàng nào.

Vâng. _GRECAPTCHA tồn tại 6 tháng nhưng cookie phiên rc:: sẽ hết hạn khi trình duyệt đóng. Cookie tài khoản Google (SID, HSID) tồn tại 2 năm nhưng có thể bị Google vô hiệu hóa. Để tự động hóa, hãy lưu cookie vào đĩa và làm mới chúng định kỳ bằng cách truy cập trang đích.

Có, với những hạn chế. Cookie có thể được xuất (dưới dạng JSON hoặc định dạng Netscape) và được nhập vào các yêu cầu, phiên Selenium hoặc Puppeteer. Tuy nhiên, dấu vân tay của trình duyệt sẽ khác nhau và reCAPTCHA có thể phát hiện được điều này. Cookie cung cấp phần thưởng tin cậy nhưng môi trường trình duyệt mới có thể bù đắp cho điều đó.

Việc xóa cookie sẽ xóa cookie tin cậy _GRECAPTCHA và cookie lịch sử hành vi rc::. reCAPTCHA coi bạn như một khách truy cập hoàn toàn mới, chưa có lịch sử, bắt đầu điểm rủi ro ở mức cơ bản thấp hơn. Đây là lý do tại sao việc duyệt web ẩn danh/private thường gây ra nhiều thử thách CAPTCHA hơn.


Tóm tắt

reCAPTCHA sử dụng cookie để theo dõi phiên (cookie rc::), tin cậy giữa các trang web (_GRECAPTCHA) và liên kết tài khoản Google (SID, HSID). Các phiên mới không có cookie sẽ tạo ra điểm thấp hơn và thử thách khó hơn. Để giải quyết dựa trên API vớiCaptchaAI, không cần phải có cookie — trình giải mã sẽ tạo mã thông báo hợp lệ chỉ bằng cách sử dụng khóa trang và URL trang. Để triển khai phụ thuộc vào cookie, hãy sử dụng phương pháp dựa trên trình duyệt: tải trang (thiết lập cookie), giải quyết thông qua CaptchaAI, chèn mã thông báo và gửi từ cùng một phiên trình duyệt.

bài viết liên quan

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