इस लेख में हमने आपकी सभी महत्वपूर्ण शंकाओं के जवाब देने की कोशिश की है। किसी भी समस्या को हल करना शुरू करने का पहला कदम यह तय करना है कि कौन-सा सुरक्षा सिस्टम उपयोग में है। इसके लिए आप लोकप्रिय कैप्चा और एंटी-बॉट सुरक्षा सिस्टमों की सूची देख सकते हैं, जहाँ ऐसे दृश्य उदाहरण और मुख्य संकेत दिए गए हैं जो यह जल्दी समझने में मदद करते हैं कि आप किस समाधान के साथ काम कर रहे हैं।
यदि आपको पता चलता है कि आपकी साइट पर FunCaptcha (Arkose Labs CAPTCHA) उपयोग हो रहा है, तो अगला कदम इसके गुणों और काम करने के तरीके को और विस्तार से समझना है। इसी लेख में आप FunCaptcha (Arkose Labs CAPTCHA) सिस्टम को जोड़ने (इंटीग्रेट करने) की निर्देशिका भी देख सकते हैं, ताकि आप पूरी तरह समझ सकें कि यह आपकी साइट पर कैसे काम करता है। इससे आप न केवल मौजूदा सुरक्षा को बेहतर ढंग से समझ पाएँगे, बल्कि उसकी सपोर्ट और रखरखाव की सही योजना भी बना सकेंगे।
API के माध्यम से CapMonster Cloud के साथ काम करने के सामान्य चरण:
type - FunCaptchaTask
websiteURL - उस पेज का पता जहाँ कैप्चा हल हो रहा है;
websitePublicKey - FunCaptcha कुंजी (मूल्य public key या pk);
data - एक अतिरिक्त पैरामीटर। आवश्यक है यदि साइट पर data[blob] का उपयोग हो रहा है;
funcaptchaApiJSSubdomain - Arkose Labs का सबडोमेन (मान surl)। इसे केवल तभी दें जब यह स्टैंडर्ड से अलग हो: client-api.arkoselabs.com
userAgent - ब्राउज़र User-Agent। केवल Windows OS का वर्तमान UA भेजें।
इस टास्क के लिए अपने प्रॉक्सी का उपयोग करना आवश्यक है:
proxyType :
proxyAddress - प्रॉक्सी IP पता (IPv4/IPv6)।
proxyPort - प्रॉक्सी पोर्ट।
proxyLogin - प्रॉक्सी सर्वर लॉगिन।
proxyPassword - प्रॉक्सी सर्वर पासवर्ड।
https://api.capmonster.cloud/createTask
{
"clientKey": "API_KEY",
"task": {
"type": "FunCaptchaTask",
"websiteURL": "https://www.example.com",
"websitePublicKey": "EX72CCFB-26EX-40E5-91E6-85EX70BE98ED",
"funcaptchaApiJSSubdomain": "example-api.arkoselabs.com",
"data": "{\"blob\":\"nj9UbL+yio7goOlTQ/b64t.ayrrBnP6kPgzlKYCP/kv491lKS...Wot/7gjpyIxs7VYb0+QuRcfQ/t6bzh5pXDkOFSskA/V/ITSVZSAlglIplLcdreZ4PE8skfMU6k1Q\"}",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
"proxyType": "http", // आवश्यक होने पर प्रॉक्सी जोड़ें
"proxyAddress": "8.8.8.8",
"proxyPort": 8080,
"proxyLogin": "proxyLoginHere",
"proxyPassword": "proxyPasswordHere"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"token": "337187b9f57678923.5060184402|r=us-west-2|lang=en|pk=EX72CCFB-26EX-40E5-91E6-85EX70BE98ED|at=40|ag=101|cdn_url=https%3A%2F%2Fclient-api.arkoselabs.com%2Fcdn%2Ffc|surl=https%3A%2F%2Fclient-api.arkoselabs.com|smurl=https%3A%2F%2Fclient-api.arkoselabs.com%2Fcdn%2Ffc%2Fassets%2Fstyle-manager",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
"status": "ready"
}
// npm install playwright
const { chromium } = require("playwright");
const WEBSITE_URL = "https://example.com";
// CapMonster Cloud से प्राप्त टोकन
const FUN_CAPTCHA_TOKEN = "PUT_YOUR_FUN_CAPTCHA_TOKEN_HERE";
(async () => {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
/**
* Arkose यूनिवर्सल इंटरसेप्टर (v1 / v2)
* पेज लोड होने से पहले निष्पादित होता है
*/
await page.addInitScript(() => {
const callbacks = [];
function captureCallback(cb, source) {
if (typeof cb === "function") {
callbacks.push(cb);
console.log("[Arkose] callback captured from", source);
}
}
function patchRender(obj, name) {
if (!obj || typeof obj.render !== "function") return;
const originalRender = obj.render;
obj.render = function (container, options = {}) {
captureCallback(options.callback, name + ".render");
return originalRender.apply(this, arguments);
};
}
// Object.defineProperty के माध्यम से इंटरसेप्शन (अक्सर Arkose द्वारा इस्तेमाल होता है)
const originalDefineProperty = Object.defineProperty;
Object.defineProperty = function (target, prop, descriptor) {
if (
(prop === "FunCaptcha" || prop === "ArkoseEnforcement") &&
descriptor &&
typeof descriptor.value === "object"
) {
patchRender(descriptor.value, prop);
}
return originalDefineProperty.apply(this, arguments);
};
// Fallback: ग्लोबल ऑब्जेक्ट्स की समय-समय पर जांच
const interval = setInterval(() => {
if (window.FunCaptcha) patchRender(window.FunCaptcha, "FunCaptcha");
if (window.ArkoseEnforcement)
patchRender(window.ArkoseEnforcement, "ArkoseEnforcement");
if (callbacks.length > 0) clearInterval(interval);
}, 200);
// टोकन पास करने के लिए यूनिवर्सल पॉइंट
window.__arkoseSolve = function (token) {
if (callbacks.length > 0) {
callbacks.forEach((cb) => cb(token));
console.log("[Arkose] token delivered via captured callbacks");
return true;
}
// वैकल्पिक विकल्प
if (typeof window.arkoseCallback === "function") {
window.arkoseCallback(token);
console.log("[Arkose] token delivered via arkoseCallback");
return true;
}
// Fallback
window._arkoseToken = token;
console.log("[Arkose] token stored in window._arkoseToken");
return false;
};
});
/**
* पेज खोलना
*/
console.log("Opening page...");
await page.goto(WEBSITE_URL, { waitUntil: "domcontentloaded" });
/**
* यहाँ साइट को FunCaptcha इनिशियलाइज़ करना चाहिए
* (पंजीकरण, लॉगिन, बटन, फॉर्म आदि।)
*/
/**
* तैयार टोकन पास करना
*/
console.log("Injecting FunCaptcha token...");
await page.evaluate((token) => {
if (!window.__arkoseSolve) {
console.log("[Arkose] solver not ready");
return;
}
window.__arkoseSolve(token);
}, FUN_CAPTCHA_TOKEN);
/**
* पेज को परिणाम प्रोसेस करने का समय दें
*/
await page.waitForTimeout(5000);
console.log("Done.");
await browser.close();
})();
एक्सेस प्राप्त करने के बाद दो कुंजी (Public / Private) प्राप्त करें, सेक्शन Settings → Keys में।

आवश्यकता होने पर Customer Success Manager (CSM) से संपर्क करें:
Arkose की सिफ़ारिशें
सामान्य कार्यप्रणाली
चरण 1. क्लाइंट-साइड इंटीग्रेशन
ब्राउज़र पर (Arkose Bot Manager):
Client API:
client-api.arkoselabs.com<company>-api.arkoselabs.comमुख्य आवश्यकताएँ
क्लाइंट का परिणाम — token, जिसे सर्वर को भेजना होगा।
<html>
<head>
<!--
Arkose Labs API को पेज के <head> में जोड़ें। उदाहरण में सुनिश्चित करें:
- <YOUR PUBLIC KEY> को Arkose Labs द्वारा जारी public key से बदलें;
- <YOUR CALLBACK> को आपके द्वारा परिभाषित ग्लोबल callback फ़ंक्शन के नाम से बदलें।
उदाहरण:
<script src="//client-api.arkoselabs.com/v2/<YOUR PUBLIC KEY>/api.js"
data-callback="setupDetect"></script>
-->
<script src="//client-api.arkoselabs.com/v2/<YOUR PUBLIC KEY>/api.js" data-callback="<YOUR CALLBACK>"></script>
<link rel="shortcut icon" href="#">
<meta charset="UTF-8">
</head>
<body>
<!--
ट्रिगर एलिमेंट पेज पर कहीं भी हो सकता है और DOM में कभी भी जोड़ा जा सकता है।
-->
<button id="arkose-trigger">
ट्रिगर एलिमेंट
</button>
<!--
Arkose सेटअप (detection या enforcement मोड) के लिए, स्क्रिप्ट को </body> से पहले रखें और callback फ़ंक्शन को ग्लोबल परिभाषित करें।
-->
<script>
/*
यह ग्लोबल फ़ंक्शन तब कॉल होगा जब Arkose API तैयार हो। फ़ंक्शन का नाम script के data-callback attribute से मेल खाना चाहिए।
*/
function setupArkose(myArkose) {
myArkose.setConfig({
selector: '#arkose-trigger',
onCompleted: function(response) {
// एक-बार का टोकन, जिसे सर्वर पर भेजना होगा
console.log(response.token);
}
});
}
</script>
</body>
</html>
चरण 2. सर्वर-साइड सत्यापन
सर्वर पर टोकन की जाँच Arkose Verify API के माध्यम से की जाती है।
Verify API endpoint
https://<company>-verify.arkoselabs.com/api/v4/verify/रिक्वेस्ट पैरामीटर आवश्यक
POST रिक्वेस्ट बॉडी का उदाहरण
{
"private_key": "_PRIVATE_KEY_HERE_",
"session_token": "_SESSION_TOKEN_HERE_",
"log_data": "_LOG_DATA_HERE_"
}
API का उत्तर सत्र और सत्यापन परिणाम की जानकारी देता है।
मुख्य बिंदु
<?php
$private_key = 'YOUR_PRIVATE_KEY';
$verify_url = 'https://<company>-verify.arkoselabs.com/api/v4/verify/';
$input = json_decode(file_get_contents('php://input'), true);
$session_token = $input['session_token'] ?? null;
$log_data = $input['log_data'] ?? '';
$email_address = $input['email_address'] ?? '';
if (!$session_token) {
http_response_code(400);
echo json_encode(['error' => 'Session token अनुपस्थित']);
exit;
}
$data = [
'private_key' => $private_key,
'session_token' => $session_token,
'log_data' => $log_data,
'email_address' => $email_address
];
$options = [
'http' => [
'header' => "Content-Type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data),
],
];
$context = stream_context_create($options);
$result = file_get_contents($verify_url, false, $context);
if ($result === FALSE) {
http_response_code(500);
echo json_encode(['error' => 'कैप्चा सत्यापन में त्रुटि']);
exit;
}
echo $result;
?>
यह कैसे काम करता है:
अगर आपके पास ऐसा साइट आया है, जिस पर पहले से ही कोई कैप्चा या अन्य सुरक्षा प्रणाली लगी हुई है और आपके पास कोड तक पहुंच नहीं है — तो घबराने की ज़रूरत नहीं है! यह पता लगाना काफ़ी आसान है कि वास्तव में कौन-सी तकनीक इस्तेमाल हो रही है। काम की सही जाँच के लिए आप अलग-थलग टेस्ट वातावरण में CapMonster Cloud पहचान सेवा का उपयोग कर सकते हैं, ताकि यह सुनिश्चित हो सके कि टोकन प्रोसेसिंग का मेकैनिज़्म और वेरिफिकेशन लॉजिक ठीक तरह से काम कर रहे हैं।
FunCaptcha के मामले में सिस्टम की पहचान करना, उसके व्यवहार का विश्लेषण करना और यह सुनिश्चित करना ही काफ़ी है कि सुरक्षा सही तरीके से काम कर रही है। इस लेख में हमने दिखाया है कि FunCaptcha को कैसे पहचाना जाए और इसे जोड़ने या दोबारा कॉन्फ़िगर करने की निर्देशिका कहाँ मिलेगी, ताकि आप आत्मविश्वास के साथ सुरक्षा को बनाए रख सकें और इसके काम को नियंत्रित कर सकें।