hCaptcha là một loại captcha khá mới thực sự giống với reCAPTCHA và trông giống như sau:
1. Tìm data-sitekey của hCAPTCHA
Đầu tiên, bạn cần tìm giá trị của tham số data-sitekey trong mã nguồn của trang web chứa hCAPTCHA. Mở bảng điều khiển dành cho nhà phát triển trong trình duyệt của bạn và tìm phần tử có thuộc tính data-sitekey
invisible hCAPTCHA
1: Có
0: Không
Giá trị mặc định: 0
Nếu trong url iframe của hcaptcha bạn thấy có [ &size=invisible ] thì cần truyền invisible = 1
POST HTTP
Url: https://2captcha.net/in.php
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"method": "hcaptcha", // id cho hCAPTCHA
"sitekey": "d121ad2d-b38b-4398-84ec-acd9633d5119", // thay bằng sitekey của bạn
"pageurl": "https://il9p1l.csb.app" // thay bằng url của bạn
}
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://2captcha.net/in.php',
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"key": "[api key]",
"method": "hcaptcha",
"sitekey": "d121ad2d-b38b-4398-84ec-acd9633d5119",
"pageurl": "https://google.com/recaptcha/api2/demo"
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
}
5. Sử dụng kết quả token nhận được
5.1. Vượt hCAPTCHA dạng click
Định vị phần tử có id h-captcha-response và g-recaptcha-response và làm cho nó hiển thị bằng cách xóa tham số display:none.
Xin lưu ý: đôi khi nội dung trên trang được tạo động và bạn sẽ không thấy phần tử này trong mã nguồn html. Trong những trường hợp như vậy, bạn phải khám phá mã javascript mà tạo ra nội dung. Tùy chọn "Inspect" (F12) trong Google Chrome có thể giúp ích trong việc đó.
Như một sự thay thế bạn chỉ có thể sử dụng javascript để đặt giá trị của trường h-captcha-response và g-recaptcha-response:
Một trường input textarea sẽ xuất hiện. Và bạn chỉ phải paste giá trị token nhận được vào đó và submit form.
5.2. Vượt hCAPTCHA dạng callback
Đôi khi không có nút submit và thay vào đó một hàm callback được sử dụng. Hàm này được thực thi khi hCAPTCHA được giải quyết.
Hàm callback thường được xác định trong tham số data-callback của hCAPTCHA, ví dụ:
data-callback="myCallbackFunction"
Hoặc thỉnh thoảng nó được xác định là tham số callback của hàm grecaptcha.render, ví dụ:
Thực hiện action mà cần được thực hiện trên trang sau khi giải quyết hCAPTCHA.
Thông thường, có một form cần được submit và bạn cần xác định form theo id hoặc name hoặc bất kỳ thuộc tính nào khác rồi submit form. Dưới đây là một vài ví dụ:
document.getElementById("hcaptcha-demo-form").submit(); //by id "hcaptcha-demo-form"
document.getElementsByName("myFormName")[0].submit(); //by element name "myFormName"
document.getElementsByClassName("example").submit(); //by class name "example"
Hoặc đôi khi có một hàm callback được thực thi khi hCAPTCHA được giải quyết.
Hàm callback thường được định nghĩa trong tham số data-callback của hCAPTCHA, ví dụ:
data-callback="myCallbackFunction"
Hoặc thỉnh thoảng nó được định nghĩa như tham số callback của hàm grecaptcha.render , ví dụ: