इस लेख में हमने आपकी सभी महत्वपूर्ण शंकाओं के जवाब देने की कोशिश की है। किसी भी समस्या को हल करना शुरू करने का पहला कदम यह तय करना है कि कौन-सा सुरक्षा सिस्टम उपयोग में है। इसके लिए आप लोकप्रिय कैप्चा और एंटी-बॉट सुरक्षा सिस्टमों की सूची देख सकते हैं, जहाँ ऐसे दृश्य उदाहरण और मुख्य संकेत दिए गए हैं जो यह जल्दी समझने में मदद करते हैं कि आप किस समाधान के साथ काम कर रहे हैं।
यदि आपको पता चलता है कि आपकी साइट पर Cloudflare Turnstile उपयोग हो रहा है, तो अगला कदम इसके गुणों और काम करने के तरीके को और विस्तार से समझना है। इसी लेख में आप Cloudflare Turnstile सिस्टम को जोड़ने (इंटीग्रेट करने) की निर्देशिका भी देख सकते हैं, ताकि आप पूरी तरह समझ सकें कि यह आपकी साइट पर कैसे काम करता है। इससे आप न केवल मौजूदा सुरक्षा को बेहतर ढंग से समझ पाएँगे, बल्कि उसकी सपोर्ट और रखरखाव की सही योजना भी बना सकेंगे।
Cloudflare Turnstile वाले फॉर्म का परीक्षण करते समय अक्सर यह जाँचना पड़ता है कि कैप्चा सही ढंग से काम कर रही है और सही तरह से जोड़ी गई है।
आप अपने साइट पर लगी कैप्चा को मैन्युअली जाँच सकते हैं।
स्वचालित समाधान के लिए आप CapMonster Cloud जैसे टूल का उपयोग कर सकते हैं, जो कैप्चा के पैरामीटर स्वीकार करता है, उन्हें अपने सर्वर पर प्रोसेस करता है और तैयार टोकन लौटाता है। इस टोकन को फॉर्म में डालें और बिना उपयोगकर्ता हस्तक्षेप के जाँच पार करें।
API के माध्यम से CapMonster Cloud के साथ काम करने के सामान्य चरण:
Cloudflare Turnstile को हल करने के लिए अनुरोध में निम्नलिखित पैरामीटर निर्दिष्ट करना आवश्यक है:
type - TurnstileTask;
websiteURL - उस पृष्ठ का पता जहां CAPTCHA हल किया जा रहा है;
websiteKey - Turnstile कुंजी.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "TurnstileTask",
"websiteURL": "http://tsmanaged.zlsupport.com",
"websiteKey": "0x4AAAAAAABUYP0XeMJF0xoy"
}
}{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}{
"errorId": 0,
"status": "ready",
"solution": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"token": "0.iGX3xsyFCkbGePM3jP4P4khLo6TrLukt8ZzBvwuQOvbC...f61f3082"
}
}// npm install playwright @zennolab_com/capmonstercloud-client
import { chromium } from "playwright";
import { CapMonsterCloudClientFactory, ClientOptions, TurnstileRequest } from "@zennolab_com/capmonstercloud-client";
async function main() {
// 1. CapMonster Cloud के माध्यम से Turnstile समाधान
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: 'YOUR_CAPMONSTER_API_KEY' })
);
const turnstileRequest = new TurnstileRequest({
websiteURL: 'http://tsmanaged.zlsupport.com',
websiteKey: '0x4AAAAAAABUYP0XeMJF0xoy',
});
const result = await cmcClient.Solve(turnstileRequest);
const token = result.solution.token;
console.log('Turnstile टोकन प्राप्त हुआ:', token);
// 2. Playwright प्रारंभ करना
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('http://tsmanaged.zlsupport.com');
// 3. लॉगिन और पासवर्ड भरना
await page.fill('#username', 'your_username');
await page.fill('#password', 'your_password');
// 4. छिपे हुए टोकन फ़ील्ड के प्रकट होने की प्रतीक्षा करना
await page.waitForSelector('#token', { state: 'attached', timeout: 60000 });
// 5. टोकन डालना और फ़ील्ड को दृश्यमान बनाना
await page.evaluate((t) => {
const tokenInput = document.querySelector('#token');
if (tokenInput) {
tokenInput.type = 'text'; // फ़ील्ड को दृश्यमान बनाएं
tokenInput.value = t; // टोकन डालें
console.log('टोकन फ़ील्ड में टोकन डाला गया');
} else {
console.error('फ़ील्ड #token नहीं मिला');
}
}, token);
// 6. सत्यापित करना कि टोकन वास्तव में डाला गया था
const checkValue = await page.$eval('#token', el => el.value);
console.log('टोकन वैल्यू की जाँच:', checkValue);
// 7. फॉर्म सबमिट करना
await page.click('button[type="submit"]');
console.log('Turnstile टोकन के साथ फॉर्म सबमिट किया गया');
// await browser.close();
}
main().catch(err => console.error(err));1. Cloudflare Turnstile पेज पर जाएं, अभी शुरू करें पर क्लिक करें।
2. सेवा पर पंजीकरण करें।
3. Turnstile Widgets में, नीले Add Widget बटन पर क्लिक करें।

4. Cloudflare Turnstile को कॉन्फ़िगर करें, निर्दिष्ट करें:
5. विजेट बनाने के बाद, आपको दो कुंजियां मिलेंगी—Site Key और Secret Key।

6. क्लाइंट-साइड भाग को कनेक्ट करें
1) Turnstile स्क्रिप्ट को कनेक्ट करें:
स्वचालित रेंडरिंग (पृष्ठ लोड होने पर विजेट स्वचालित रूप से बनाया जाता है):
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>प्रोग्रामेटिक नियंत्रण (आप स्वयं JavaScript के माध्यम से विजेट बनाते हैं):
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" defer></script>महत्वपूर्ण: स्क्रिप्ट को सटीक URL से लोड किया जाना चाहिए। प्रॉक्सी या कैश विफलताओं का कारण बन सकती है।
2) विजेट के लिए एक कंटेनर बनाएं
स्वचालित:
<div class="cf-turnstile" data-sitekey="<YOUR_SITEKEY>"></div>प्रोग्रामेटिक रूप से:
<div id="turnstile-container"></div>3) विजेट कॉन्फ़िगरेशन
data एट्रिब्यूट के माध्यम से:
<div class="cf-turnstile"
data-sitekey="<YOUR_SITEKEY>"
data-theme="light"
data-size="normal"
data-callback="onSuccess">
</div>JavaScript के माध्यम से:
const widgetId = turnstile.render("#turnstile-container", {
sitekey: "<YOUR_SITEKEY>",
theme: "light",
size: "normal",
callback: token => console.log("Token:", token)
});4) टोकन के साथ काम करना
const token = turnstile.getResponse(widgetId); // टोकन प्राप्त करें
const isExpired = turnstile.isExpired(widgetId); // समाप्ति जांचें
turnstile.reset(widgetId); // रीसेट करें
turnstile.remove(widgetId); // हटाएं
turnstile.execute("#turnstile-container"); // मैनुअल निष्पादन
5) फॉर्म के साथ एकीकरण
<form id="my-form" method="POST">
<input type="hidden" name="cf-turnstile-response" id="cf-turnstile-response">
<button type="submit">सबमिट करें</button>
</form>
<script>
function onSuccess(token) {
document.getElementById("cf-turnstile-response").value = token;
}
</script>
<title>Turnstile Example</title>
<!-- Turnstile स्क्रिप्ट कनेक्ट करें -->
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
</head>
<body>
<h1>Turnstile के साथ फॉर्म उदाहरण</h1>
<form id="my-form">
<label for="username">नाम:</label>
<input type="text" name="username" id="username" required>
<!-- Turnstile के लिए कंटेनर -->
<div class="cf-turnstile" data-sitekey="<YOUR_SITEKEY>" data-callback="onTurnstileSuccess"></div>
<button type="submit">सबमिट करें</button>
</form>
<script>
// CAPTCHA पास करने के बाद कॉल किया गया कॉलबैक
function onTurnstileSuccess(token) {
console.log("Turnstile टोकन प्राप्त हुआ:", token);
// टोकन को छिपे हुए फॉर्म फ़ील्ड में सहेजें (वैकल्पिक)
document.getElementById("cf-turnstile-token")?.remove();
const input = document.createElement("input");
input.type = "hidden";
input.name = "cf-turnstile-response";
input.id = "cf-turnstile-token";
input.value = token;
document.getElementById("my-form").appendChild(input);
}
// फॉर्म सबमिशन
document.getElementById("my-form").addEventListener("submit", async (e) => {
e.preventDefault();
const formData = new FormData(e.target);
const response = await fetch("/submit-form", {
method: "POST",
body: formData
});
const result = await response.json();
if(result.success){
alert("फॉर्म सफलतापूर्वक सबमिट किया गया और टोकन सत्यापित किया गया!");
} else {
alert("Turnstile टोकन सत्यापन त्रुटि। कृपया पुनः प्रयास करें।");
// विजेट को रीसेट करें ताकि उपयोगकर्ता CAPTCHA को फिर से पूरा कर सके
turnstile.reset();
}
});
</script>
</body>
</html>
6) सर्वर-साइड भाग को कॉन्फ़िगर करें
सर्वर-साइड सत्यापन प्रक्रिया:
Siteverify API:
https://challenges.cloudflare.com/turnstile/v0/siteverifyअनुरोध पैरामीटर:
टोकन गुण:
<?php
function validateTurnstile($token, $secret, $remoteip = null) {
$url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify';
$data = ['secret' => $secret, 'response' => $token];
if ($remoteip) $data['remoteip'] = $remoteip;
$options = [
'http' => [
'header' => "Content-type: application/x-www-form-urlencoded
",
'method' => 'POST',
'content' => http_build_query($data)
]
];
$response = file_get_contents($url, false, stream_context_create($options));
if ($response === FALSE) {
return ['success' => false, 'error-codes' => ['internal-error']];
}
return json_decode($response, true);
}
// उपयोग
$secret_key = 'YOUR_SECRET_KEY';
$token = $_POST['cf-turnstile-response'] ?? '';
$remoteip = $_SERVER['REMOTE_ADDR'];
$result = validateTurnstile($token, $secret_key, $remoteip);
if($result['success']){
echo "फॉर्म सफलतापूर्वक सबमिट किया गया!";
} else {
echo "सत्यापन त्रुटि: " . implode(', ', $result['error-codes']);
}
?>
अगर आपके पास ऐसा साइट आया है, जिस पर पहले से ही कोई कैप्चा या अन्य सुरक्षा प्रणाली लगी हुई है और आपके पास कोड तक पहुंच नहीं है — तो घबराने की ज़रूरत नहीं है! यह पता लगाना काफ़ी आसान है कि वास्तव में कौन-सी तकनीक इस्तेमाल हो रही है। काम की सही जाँच के लिए आप अलग-थलग टेस्ट वातावरण में CapMonster Cloud पहचान सेवा का उपयोग कर सकते हैं, ताकि यह सुनिश्चित हो सके कि टोकन प्रोसेसिंग का मेकैनिज़्म और वेरिफिकेशन लॉजिक ठीक तरह से काम कर रहे हैं।
Cloudflare Turnstile के मामले में सिस्टम की पहचान करना, उसके व्यवहार का विश्लेषण करना और यह सुनिश्चित करना ही काफ़ी है कि सुरक्षा सही तरीके से काम कर रही है। इस लेख में हमने दिखाया है कि Cloudflare Turnstile को कैसे पहचाना जाए और इसे जोड़ने या दोबारा कॉन्फ़िगर करने की निर्देशिका कहाँ मिलेगी, ताकि आप आत्मविश्वास के साथ सुरक्षा को बनाए रख सकें और इसके काम को नियंत्रित कर सकें।