Công cụ Phân tích rủi ro nâng cao (ARA) của reCAPTCHA đánh giá hàng chục tín hiệu để tạo ra điểm từ 0,0 (bot xác định) đến 1,0 (con người xác định). Điểm này xác định xem bạn không thấy thử thách, hộp kiểm, lưới hình ảnh hay khối cứng. Google không công bố thuật toán chấm điểm chính xác nhưng thử nghiệm rộng rãi và kỹ thuật đảo ngược đã xác định được các yếu tố chính. Đây là một phân tích kỹ thuật toàn diện về những gì làm thay đổi tỷ số.
Các hạng mục yếu tố điểm số
reCAPTCHA đánh giá tín hiệu theo năm loại, mỗi loại đóng góp vào điểm số cuối cùng:
Final Score = f(Browser Signals, Behavioral Signals, Network Signals,
History Signals, Environmental Signals)
Loại 1: Tín hiệu của trình duyệt (trọng số: cao)
Tín hiệu của trình duyệt xác định xem ứng dụng khách là trình duyệt chính hãng hay công cụ tự động.
Sự hiện diện của API JavaScript
reCAPTCHA thăm dò các API mà trình duyệt không có giao diện người dùng thiếu hoặc triển khai theo cách khác:
| Đã kiểm tra API | Dự kiến trong trình duyệt thực | Chỉ báo headless |
|---|---|---|
thuộc tính WebDriver chuẩn |
undefined hoặc false |
true (Selenium, Puppeteer) |
navigator.plugins |
PluginArray có hơn 1 mục | Trống hoặc thiếu |
navigator.languages |
Mảng có chuỗi miền địa phương | Mảng trống hoặc bị thiếu |
navigator.hardwareConcurrency |
2-16 (khớp với CPU) | Đôi khi 0 hoặc không xác định |
navigator.deviceMemory |
2-16 GB | Thiếu một số người headless |
window.chrome |
Đối tượng có thời gian chạy, v.v. | Thiếu trong Chrome headless |
Notification.permission |
"mặc định", "được cấp" hoặc "bị từ chối" | Ném hoặc mất tích |
Tác động đến điểm số: Giá trị thiếu hoặc không chính xác cho các API này có thể làm giảm điểm từ 0,3 đến 0,5 điểm.
Vân tay vải
reCAPTCHA hiển thị các phần tử canvas ẩn và đọc lại dữ liệu pixel. Kết quả là một dấu vân tay duy nhất cho tổ hợp trình duyệt/OS/GPU.
// reCAPTCHA performs something similar to:
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = "top";
ctx.font = "14px 'Arial'";
ctx.fillText("Hello", 2, 2);
const fingerprint = canvas.toDataURL();
Tác động đến điểm số:
- Trình duyệt khớp dấu vân tay nhất quán/OS Tuyên bố → Trung tính
- Dấu vân tay khớp với mẫu headless đã biết → -0,3 đến -0,5
- Hoạt động canvas bị chặn hoặc trả về dữ liệu thống nhất → -0,4 đến -0,6
Trình kết xuất WebGL
Chuỗi trình kết xuất WebGL hiển thị GPU:
const gl = document.createElement('canvas').getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
// Expected: "ANGLE (NVIDIA GeForce GTX 1060...)"
// Headless: "SwiftShader" or "Google SwiftShader"
Tác động đến điểm số: SwiftShader (trình kết xuất phần mềm của Google được sử dụng trong Chrome không có đầu) là một chỉ báo bot mạnh, làm giảm điểm từ 0,3-0,5.
Loại 2: Tín hiệu hành vi (trọng lượng: rất cao)
Tín hiệu hành vi có trọng số cao nhất trong việc tính điểm. Chúng được thu thập kể từ thời điểm tải trang.
Di chuyển chuột
reCAPTCHA theo dõi tọa độ chuột và dấu thời gian trong suốt quá trình truy cập trang:
| tín hiệu | hình người | Mẫu bot |
|---|---|---|
| Số lượng chuyển động | Hơn 50-500 sự kiện trên mỗi lượt truy cập trang | sự kiện 0-5 |
| Quỹ đạo | Đường cong với tốc độ thay đổi | Đường thẳng, tốc độ không đổi |
| Tăng tốc | Dễ dàng tự nhiên/ease-out | Bắt đầu ngay lập tức/stop |
| Các chuyển động vi mô | Độ giật nhỏ khi di chuột | Hoàn toàn tĩnh lặng giữa các hành động |
| Vượt quá mục tiêu | Vượt quá một chút với sự điều chỉnh | Nhắm mục tiêu chính xác |
Tác động đến điểm số: Không di chuyển chuột sẽ làm giảm điểm từ 0,4-0,7.
Hoạt động bàn phím
Inter-key timing:
Human: Variable (50-300ms between keys, varies by key pair)
Bot: Constant (all keys at same interval, or instant paste)
Key events:
Human: keydown → keypress → keyup for each character
Bot: May skip keypress, or fire all events simultaneously
Corrections:
Human: Occasional backspace, re-typing
Bot: Perfect input without corrections
Tác động đến điểm số: Tính năng nhập văn bản tức thì (thông qua khay nhớ tạm hoặc bài tập value bằng JavaScript) có điểm thấp hơn từ 0,1 đến 0,2.
Hành vi cuộn
reCAPTCHA giám sát các sự kiện cuộn trên trang:
- Con người: Cuộn dần dần theo đà, tốc độ thay đổi, tạm dừng để đọc
- Bot: Không cần cuộn hoặc chuyển ngay đến khu vực biểu mẫu
Tác động đến điểm số: Không có sự kiện cuộn trước khi tương tác với biểu mẫu → -0,2 đến -0,3.
Trình tự tương tác phần tử
reCAPTCHA theo dõi những thành phần mà người dùng tương tác và theo thứ tự:
- Con người: Nhấp chuột quanh trang, di chuột qua các liên kết, đọc nội dung trước khi điền vào biểu mẫu
- Bot: Điều hướng trực tiếp đến các trường của biểu mẫu, điền theo thứ tự, gửi
Tác động đến điểm số: Hành vi trực tiếp trên biểu mẫu mà không cần khám phá trang → -0,1 đến -0,3.
Loại 3: Tín hiệu mạng (trọng lượng: trung bình-cao)
Danh tiếng IP
Google duy trì cơ sở dữ liệu danh tiếng IP dựa trên:
- Kết quả thử thách reCAPTCHA trước đó từ IP này
- Các dải IP của trung tâm dữ liệu đã biết (AWS, GCP, Azure, DigitalOcean, v.v.)
- Phạm vi nhà cung cấp proxy/VPN đã biết
- Báo cáo lạm dụng và cơ sở dữ liệu thư rác
- Tìm kiếm và quảng cáo các tín hiệu lừa đảo
| loại IP | Tác động điểm số điển hình |
|---|---|
| Khu dân cư, lạm dụng thấp | Trung tính đến +0,1 |
| Khu dân cư, một số lạm dụng | -0,1 đến -0,2 |
| Trung tâm dữ liệu | -0,3 đến -0,5 |
| Proxy đã biết/VPN | -0,2 đến -0,4 |
| Nút thoát Tor | -0,4 đến -0,6 |
| Gần đây bị gắn cờ vì lạm dụng | -0,3 đến -0,6 |
Dấu vân tay TLS (JA3/JA4)
Quá trình bắt tay TLS cho biết bộ mật mã và tiện ích mở rộng nào mà máy khách hỗ trợ. Mỗi trình duyệt có một dấu vân tay đặc trưng:
- Chrome: Thứ tự mật mã cụ thể, TLS 1.3, tiện ích mở rộng GREASE
- Yêu cầu Python: Thứ tự mật mã khác nhau, không có GREASE, danh sách tiện ích mở rộng đơn giản hơn
- curl: Tiện ích mở rộng tối thiểu, mẫu dành riêng cho OpenSSL
Tác động đến điểm số: Dấu vân tay TLS không phải trình duyệt → -0,2 đến -0,4.
tiêu đề HTTP
Máy chủ của reCAPTCHA kiểm tra tiêu đề HTTP của máy khách yêu cầu:
| tiêu đề | Chỉ số con người | chỉ báo bot |
|---|---|---|
User-Agent |
Phù hợp với bản phát hành trình duyệt đã biết | Phiên bản lỗi thời, công cụ tự động hóa UA |
Accept-Language |
Được điền với các tùy chọn ngôn ngữ | Thiếu hoặc chung chung |
Accept-Encoding |
gzip, deflate, br |
Thiếu hoặc bất thường |
Sec-CH-UA |
Khách hàng gợi ý trình duyệt phù hợp | Thiếu (tiêu đề trước năm 2022) |
Loại 4: Tín hiệu lịch sử (trọng lượng: trung bình)
Cookie tài khoản Google
Người dùng đăng nhập vào tài khoản Google có điểm lịch sử duyệt web cao hơn:
- Cookie
SID,HSID,SSIDcookie → Người dùng có phiên Google - Không có cookie của Google → Người dùng không xác định, điểm bắt đầu thấp hơn
Tác động đến điểm số: Phiên Google đang hoạt động → +0,1 đến +0,3.
cookie reCAPTCHA
reCAPTCHA đặt cookie riêng sau khi hoàn thành thử thách thành công:
_GRECAPTCHAcookie → Giải quyết thành công trước đórc::a,rc::b,rc::c→ Cookie dữ liệu phân tích rủi ro
Tác động đến điểm số: Phiên mới không có cookie reCAPTCHA → -0,1 đến -0,2.
Danh tiếng chéo trang web
Google theo dõi hành vi reCAPTCHA trên tất cả các trang web sử dụng cùng một cấu hình trình duyệt. Hành vi tốt trên trang A sẽ cải thiện điểm số trên trang B.
Loại 5: Tín hiệu môi trường (trọng lượng: thấp-trung bình)
Tính nhất quán của múi giờ
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
// Should match IP geolocation
// "America/New_York" with a New York IP → consistent
// "America/New_York" with a Tokyo IP → suspicious
Kích thước màn hình và cửa sổ
screen.width, screen.height // Physical screen
window.innerWidth, innerHeight // Browser window
window.outerWidth, outerHeight // Including browser chrome
Tác động đến điểm số: Kích thước bất thường (0×0, cực lớn hoặc chính xác là mặc định) → -0,1 đến -0,2.
Tình trạng pin (nếu có)
navigator.getBattery().then(battery => {
battery.level; // 0.0 to 1.0
battery.charging; // true/false
});
API pin cung cấp một tín hiệu nhỏ - luôn sạc ở mức 100% phù hợp với môi trường phát triển máy tính để bàn.
Chiến lược tối ưu hóa điểm số
Để có điểm cao hơn trong tự động hóa
| Chiến lược | Tác động dự kiến | độ khó |
|---|---|---|
| Sử dụng Chrome thật (không phải headless) | +0,3 đến +0,5 | Thấp |
Xóa cờ thuộc tính WebDriver chuẩn |
+0,2 đến +0,3 | Thấp |
| Thêm mô phỏng chuyển động của chuột | +0,2 đến +0,4 | Trung bình |
| Sử dụng IP đa dạng nguồn yêu cầu | +0,2 đến +0,3 | Thấp (chi phí) |
| Duy trì cookie của Google trong các phiên | +0,1 đến +0,2 | Trung bình |
| Khớp dấu vân tay TLS với Chrome | +0,1 đến +0,3 | Cao |
| Mô phỏng khám phá trang trước biểu mẫu | +0,1 đến +0,2 | Trung bình |
Hoặc: Sử dụng bộ giải API
Thay vì tối ưu hóa tất cả các tín hiệu này, hãy sử dụng CaptchaAI để tạo mã thông báo hợp lệ bất kể điểm số:
import requests
import time
API_KEY = "YOUR_API_KEY"
# Request a high-score token
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6LcR_RsTAAAAAN_r0GEkGBfq3L7KmU5JbPHJtwNp",
"pageurl": "https://staging.example.com/qa-login",
"version": "v3",
"action": "login",
"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"High-score token received")
break
Môi trường bộ giải được tối ưu hóa để đạt điểm tối đa — xử lý tất cả các tín hiệu trình duyệt, hành vi và mạng trong nội bộ.
Câu hỏi thường gặp
Điểm reCAPTCHA v3 "tốt" là gì?
Điểm từ 0,7 trở lên thường được coi là giống con người. Hầu hết các trang web đều đặt ngưỡng trong khoảng từ 0,5 đến 0,7. Điểm 0,9 hầu như vượt qua tất cả các triển khai. API CaptchaAI không có tham số score-target — Google quyết định điểm. Để tăng điểm trả về, hãy gắn cookies, userAgent và proxy vào yêu cầu.
Việc sử dụng VPN có luôn làm giảm điểm không?
IP VPN từ trung tâm dữ liệu thường có điểm thấp hơn từ 0,2-0,4. Tuy nhiên, dịch vụ VPN dân cư mang lại kết quả tốt hơn. Tác động của điểm số phụ thuộc vào lịch sử danh tiếng của IP cụ thể chứ không phải bản thân dịch vụ VPN.
Tại sao điểm của tôi khác nhau giữa các trang trên cùng một trang?
reCAPTCHA v3 sử dụng tham số action để ngữ cảnh hóa điểm số. Các hành động khác nhau (trang chủ, đăng nhập, thanh toán) có thể có điểm cơ bản khác nhau. Ngoài ra, các tín hiệu hành vi sẽ tích lũy trong phiên — các trang sau có thể đạt điểm cao hơn vì có nhiều dữ liệu hành vi hơn.
Tôi có thể kiểm tra điểm reCAPTCHA của mình khi không sở hữu trang web không?
Không trực tiếp. Điểm reCAPTCHA v3 chỉ được trả về máy chủ thông qua API xác minh trang web. Tuy nhiên, bạn có thể ước tính điểm của mình bằng cách quan sát xem các trang web có hiển thị cho bạn những thách thức (điểm thấp) hay vượt qua bạn (điểm cao) khi triển khai reCAPTCHA v3 đã biết hay không.
Tóm tắt
Điểm reCAPTCHA được xác định bằng dấu vân tay của trình duyệt (sự hiện diện của API, canvas, WebGL), phân tích hành vi (di chuyển chuột, thời gian bàn phím, kiểu cuộn), danh tiếng mạng (loại IP, dấu vân tay TLS), lịch sử (cookie của Google, các giải pháp trước đó) và tính nhất quán của môi trường (múi giờ, kích thước màn hình). Để tự động hóa cần điểm cao nhất quán, hãy sử dụngCaptchaAIvà gắn cookies, userAgent cùng proxy dân cư để tăng điểm Google trả về.
bài viết liên quan
- Cách giải quyết Recaptcha V3 Enterprise bằng Api
- Ngưỡng điểm tối thiểu của Recaptcha V3
- Recaptcha V3 Enterprise Vs Standard