Cloudflare Turnstile
और CapMonster Cloud

CAPTCHA समाधान, वेबसाइट इंस्टॉलेशन और परीक्षण।

Cloudflare Turnstile समाधान की कीमतें

कैप्च
मूल्य (USD)
$ 1.30
1000 टोकन
क्या आपको ऐसी साइट मिली है जिस पर पहले से कैप्चा या सुरक्षा परत है, लेकिन सोर्स कोड तक पहुँच नहीं है? तब स्वाभाविक रूप से प्रश्न उठते हैं: कौन सा समाधान लगा है, क्या वह सही तरह से कॉन्फ़िगर हुआ है और इसे कैसे परखा जाए?

इस लेख में हमने आपकी सभी महत्वपूर्ण शंकाओं के जवाब देने की कोशिश की है। किसी भी समस्या को हल करना शुरू करने का पहला कदम यह तय करना है कि कौन-सा सुरक्षा सिस्टम उपयोग में है। इसके लिए आप लोकप्रिय कैप्चा और एंटी-बॉट सुरक्षा सिस्टमों की सूची देख सकते हैं, जहाँ ऐसे दृश्य उदाहरण और मुख्य संकेत दिए गए हैं जो यह जल्दी समझने में मदद करते हैं कि आप किस समाधान के साथ काम कर रहे हैं।

यदि आपको पता चलता है कि आपकी साइट पर Cloudflare Turnstile उपयोग हो रहा है, तो अगला कदम इसके गुणों और काम करने के तरीके को और विस्तार से समझना है। इसी लेख में आप Cloudflare Turnstile सिस्टम को जोड़ने (इंटीग्रेट करने) की निर्देशिका भी देख सकते हैं, ताकि आप पूरी तरह समझ सकें कि यह आपकी साइट पर कैसे काम करता है। इससे आप न केवल मौजूदा सुरक्षा को बेहतर ढंग से समझ पाएँगे, बल्कि उसकी सपोर्ट और रखरखाव की सही योजना भी बना सकेंगे।

Cloudflare Turnstile क्या है
Cloudflare Turnstile क्या है
Cloudflare Turnstile Cloudflare की एक आधुनिक CAPTCHA है जो वेबसाइटों को स्वचालित कार्यों से सुरक्षित करती है। वेबसाइट आगंतुकों के लिए, सत्यापन लगभग अदृश्य है, कार्यों को पूरा करने की आवश्यकता नहीं है: आमतौर पर चेकबॉक्स पर एक क्लिक पर्याप्त है, जिसके बाद सिस्टम निर्णय लेता है कि आगंतुक को अनुमति दी जाए या बॉट के संदेह में ब्लॉक कर दिया जाए। Cloudflare Challenge के विपरीत, Turnstile CAPTCHA सीधे वेबसाइट पर रखा जाता है, अलग विंडो में नहीं—आमतौर पर लॉगिन या पंजीकरण फॉर्म में।

CapMonster Cloud के माध्यम से Cloudflare Turnstile को कैसे हल करें

Cloudflare Turnstile वाले फॉर्म का परीक्षण करते समय अक्सर यह जाँचना पड़ता है कि कैप्चा सही ढंग से काम कर रही है और सही तरह से जोड़ी गई है।

आप अपने साइट पर लगी कैप्चा को मैन्युअली जाँच सकते हैं।

  • फॉर्म वाला पेज खोलें और देखें कि कैप्चा दिखाई दे रही है या नहीं।
  • बिना कैप्चा हल किए फॉर्म भेजने की कोशिश करें — सर्वर को त्रुटि लौटानी चाहिए।
  • सफल समाधान के बाद फॉर्म बिना समस्या के भेजा जाना चाहिए।

स्वचालित समाधान के लिए आप CapMonster Cloud जैसे टूल का उपयोग कर सकते हैं, जो कैप्चा के पैरामीटर स्वीकार करता है, उन्हें अपने सर्वर पर प्रोसेस करता है और तैयार टोकन लौटाता है। इस टोकन को फॉर्म में डालें और बिना उपयोगकर्ता हस्तक्षेप के जाँच पार करें।

API के माध्यम से CapMonster Cloud के साथ काम करने के सामान्य चरण:

टास्क तैयार करनाटास्क तैयार करना
arrow
API अनुरोध भेजनाAPI अनुरोध भेजना
arrow
परिणाम प्राप्त करनापरिणाम प्राप्त करना
arrow
टोकन को पेज पर रखनाटोकन को पेज पर रखना
arrow
तैयार लाइब्रेरी का उपयोग करके Cloudflare Turnstile की पहचान
CapMonster Cloud सेवा Python, JavaScript (Node.js), और C# भाषाओं में सुविधाजनक कार्य के लिए तैयार लाइब्रेरी प्रदान करती है।
Python
JavaScript
C#
समाधान, टोकन सम्मिलन और फॉर्म सबमिशन
आपके वेबपेज पर CAPTCHA पहचान के पूर्ण चक्र के लिए Node.js में उदाहरण। संभावित दृष्टिकोण: HTML और CAPTCHA पैरामीटर प्राप्त करने के लिए HTTP अनुरोध का उपयोग करें, प्रतिक्रिया भेजें और परिणाम को प्रोसेस करें; या स्वचालन टूल के साथ (उदाहरण के लिए, Playwright)—पृष्ठ खोलें, CAPTCHA की प्रतीक्षा करें, पैरामीटर भेजें (परीक्षण के लिए आप सही और गलत दोनों डेटा भेज सकते हैं), CapMonster Cloud क्लाइंट के माध्यम से समाधान प्राप्त करें, फॉर्म में टोकन डालें और परिणाम देखें।
// 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));
अपनी वेबसाइट पर Cloudflare Turnstile को कैसे कनेक्ट करें
अपनी वेबसाइट पर CAPTCHA के काम में आत्मविश्वास से नेविगेट करने, इसके सत्यापन तर्क को समझने, इसे फिर से कनेक्ट करने या पुनः कॉन्फ़िगर करने के लिए, हम आपको इस अनुभाग का अध्ययन करने की सलाह देते हैं। यह सुरक्षा को कनेक्ट करने की प्रक्रिया का वर्णन करता है—यह सभी बारीकियों को जल्दी से समझने में मदद करेगा।

1. Cloudflare Turnstile पेज पर जाएं, अभी शुरू करें पर क्लिक करें।

2. सेवा पर पंजीकरण करें।

3. Turnstile Widgets में, नीले Add Widget बटन पर क्लिक करें।

HowTo Connect image 1

4. Cloudflare Turnstile को कॉन्फ़िगर करें, निर्दिष्ट करें:

  • Widget name—CAPTCHA का नाम (सुविधा के लिए, उदाहरण के लिए, Login form)।
  • Hostname Management—वे डोमेन जहां CAPTCHA काम करेगा (उदाहरण के लिए, example.com)।
  • Widget Mode:
    • Managed—इष्टतम विकल्प, CAPTCHA स्वयं निर्णय लेता है कि चेकबॉक्स दिखाना है या नहीं।
    • Non-interactive—सत्यापन क्लिक के बिना स्वचालित रूप से किया जाता है।
    • Invisible—पूरी तरह से अदृश्य।
  • Pre-clearance—यदि साइट Cloudflare Proxy के माध्यम से है तो Yes पर सेट करें (CAPTCHA को दोहराने से बचने के लिए)।

5. विजेट बनाने के बाद, आपको दो कुंजियां मिलेंगी—Site Key और Secret Key

HowTo Connect image 2

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>

कोड उदाहरणकोड उदाहरण
arrow

6) सर्वर-साइड भाग को कॉन्फ़िगर करें

सर्वर-साइड सत्यापन प्रक्रिया:

  • क्लाइंट: उपयोगकर्ता पृष्ठ पर Turnstile पूरा करता है → टोकन बनाया जाता है।
  • फॉर्म सबमिट किया जाता है: टोकन को फॉर्म डेटा के साथ सर्वर पर भेजा जाता है।
  • सर्वर: टोकन और सीक्रेट के साथ Cloudflare Siteverify API पर POST अनुरोध करता है।
  • Cloudflare: परिणाम के साथ JSON लौटाता है (success: true/false) और अतिरिक्त जानकारी (action, hostname, पूर्णता समय)।
  • सर्वर: उपयोगकर्ता क्रिया को अनुमति देने या अस्वीकार करने का निर्णय लेता है।

Siteverify API:

POST
https://challenges.cloudflare.com/turnstile/v0/siteverify

अनुरोध पैरामीटर:

  • secret (आवश्यक): Cloudflare पैनल से गुप्त Turnstile कुंजी
  • response (आवश्यक): क्लाइंट पर प्राप्त टोकन
  • remoteip (वैकल्पिक): उपयोगकर्ता का IP पता (अनुशंसित)
  • idempotency_key (वैकल्पिक): दोहराए गए सत्यापन से सुरक्षा के लिए अद्वितीय UUID

टोकन गुण:

  • अधिकतम लंबाई: 2048 वर्ण
  • 5 मिनट के लिए वैध
  • एकल-उपयोग
  • समाप्त होने या पुनः सत्यापन पर, API timeout-or-duplicate त्रुटि लौटाएगा

PHP में सत्यापन उदाहरणPHP में सत्यापन उदाहरण
arrow

Background
संभावित त्रुटियाँ और डिबगिंग
Bug Icon
गलत पैरामीटर
CAPTCHA प्रदर्शित नहीं होता है या invalid-input-secret, missing-input-response, invalid-input-response जैसी त्रुटियां देता है। sitekey और secret key की वैधता की जांच करें, साथ ही Cloudflare Dashboard में सेटिंग्स की जांच करें।
Bug Icon
समाधान टाइमआउट
टोकन समाप्त हो गया है (300 सेकंड के लिए वैध) या समय पर प्राप्त नहीं हुआ। स्थिर कनेक्शन और सही API एकीकरण सुनिश्चित करें
Bug Icon
खाली या गलत टोकन
पैरामीटर cf-turnstile-response गायब है या गलत है। फॉर्म और सर्वर को टोकन स्थानांतरण की जांच करें।
Bug Icon
प्रतिक्रिया success=false
टोकन अमान्य, समाप्त या पहले से उपयोग किया गया है। प्रत्येक टोकन को केवल एक बार सत्यापित किया जा सकता है। विश्लेषण के लिए Siteverify अनुरोध और प्रतिक्रियाओं की लॉगिंग सक्षम करें।
सुरक्षा की मजबूती की जाँच
इंटीग्रेशन के बाद सुनिश्चित करें कि सिस्टम वास्तव में साइट को स्वचालित कार्रवाइयों से बचा रहा है।
सुरक्षा और अनुकूलन के सुझाव
केवल सर्वर पर टोकन सत्यापित करें, कभी भी फ्रंटएंड से Siteverify API को कॉल न करें—यह आपकी गुप्त कुंजी को उजागर करेगा।
कोड में कुंजियों को संग्रहीत करने के बजाय पर्यावरण चर या सीक्रेट प्रबंधन प्रणाली का उपयोग करें।
अतिरिक्त फ़ील्ड (<span class="font-bold">hostname</span>, <span class="font-bold">action</span>) की जांच करें ताकि यह सुनिश्चित हो सके कि अनुरोध आपकी वेबसाइट से आया है।
HTTPS का उपयोग करें—Siteverify के सभी कॉल सुरक्षित कनेक्शन के माध्यम से किए जाने चाहिए।
त्रुटि हैंडलिंग लागू करें—जब API उपलब्ध नहीं है, तो आंतरिक डेटा को प्रकट किए बिना उपयोगकर्ता को स्पष्ट संदेश दिखाएं।
डोमेन द्वारा sitekey के उपयोग को प्रतिबंधित करें।
यदि आपके संगठन या गोपनीयता नीति द्वारा आवश्यक हो तो फॉर्म में <span class="font-bold">गोपनीयता नीति</span> और <span class="font-bold">Cloudflare सेवा की शर्तें</span> के लिंक जोड़ें।
निष्कर्ष

अगर आपके पास ऐसा साइट आया है, जिस पर पहले से ही कोई कैप्चा या अन्य सुरक्षा प्रणाली लगी हुई है और आपके पास कोड तक पहुंच नहीं है — तो घबराने की ज़रूरत नहीं है! यह पता लगाना काफ़ी आसान है कि वास्तव में कौन-सी तकनीक इस्तेमाल हो रही है। काम की सही जाँच के लिए आप अलग-थलग टेस्ट वातावरण में CapMonster Cloud पहचान सेवा का उपयोग कर सकते हैं, ताकि यह सुनिश्चित हो सके कि टोकन प्रोसेसिंग का मेकैनिज़्म और वेरिफिकेशन लॉजिक ठीक तरह से काम कर रहे हैं।

Cloudflare Turnstile के मामले में सिस्टम की पहचान करना, उसके व्यवहार का विश्लेषण करना और यह सुनिश्चित करना ही काफ़ी है कि सुरक्षा सही तरीके से काम कर रही है। इस लेख में हमने दिखाया है कि Cloudflare Turnstile को कैसे पहचाना जाए और इसे जोड़ने या दोबारा कॉन्फ़िगर करने की निर्देशिका कहाँ मिलेगी, ताकि आप आत्मविश्वास के साथ सुरक्षा को बनाए रख सकें और इसके काम को नियंत्रित कर सकें।

Conclusion

Cloudflare Turnstile के बारे में अक्सर पूछे जाने वाले प्रश्न

CapMonster Cloud के साथ Cloudflare Turnstile हल करने के लिए:

निम्नलिखित JSON पैरामीटर के साथ https://api.capmonster.cloud/createTask पर POST अनुरोध भेजें:

{
  "clientKey": "API_KEY",
  "task": {
    "type": "TurnstileTask",
    "websiteURL": "[page_URL_with_Turnstile]",
    "websiteKey": "[Turnstile_website_key]"
  }
}

API एक taskId लौटाता है।

प्रतिक्रिया स्थिति ready होने तक clientKey और taskId के साथ https://api.capmonster.cloud/getTaskResult को पोल करें।

जब कार्य हल हो जाता है, तो प्रतिक्रिया में एक token और मिलान userAgent शामिल होता है।

दोनों मान उसी ब्राउज़र सत्र में पास करें जो फ़ॉर्म जमा करेगा।

विवरण और उदाहरणों के लिए Turnstile कार्य दस्तावेज़ीकरण देखें।

Cloudflare Turnstile तीन विजेट मोड का समर्थन करता है:

  • Managed: Turnstile जोखिम के आधार पर तय करता है कि इंटरैक्टिव जाँच दिखानी है या आगंतुक को चुपचाप जाने देना है।
  • Non-interactive: बिना उपयोगकर्ता इंटरैक्शन के चलता है लेकिन जाँच के दौरान दृश्य विजेट दिखाता है।
  • Invisible: यह भी बिना उपयोगकर्ता इंटरैक्शन के चलता है, लेकिन विजेट आगंतुक को नहीं दिखाया जाता।

जब आपका backend क्लाइंट से Turnstile token प्राप्त करता है:

इसे पैरामीटर के साथ https://challenges.cloudflare.com/turnstile/v0/siteverify पर POST करें:

  • secret: Cloudflare डैशबोर्ड से विजेट की गुप्त कुंजी
  • response: क्लाइंट-साइड विजेट से token
  • remoteip (वैकल्पिक): आगंतुक का IP पता
  • idempotency_key (वैकल्पिक): सुरक्षित पुनः प्रयास के लिए आपके द्वारा उत्पन्न UUID

एंडपॉइंट application/x-www-form-urlencoded और application/json दोनों स्वीकार करता है।

यदि token सफलतापूर्वक सत्यापित हुआ, तो Cloudflare success: true लौटाता है।

फ़ॉर्म जमा करने से पहले [name="cf-turnstile-response"] फ़ील्ड में token इंजेक्ट करने के लिए page.evaluate() या अन्य DOM-स्तरीय विधि का उपयोग करें।

ध्यान रखें कि कुछ एकीकरण callback या कस्टम JavaScript हैंडलर पर भी निर्भर करते हैं। इस स्थिति में, विजेट के JS callback फ़ंक्शन (data-callback में परिभाषित) को कॉल करें और प्राप्त token को सर्वर सत्यापन में पास करें।

Turnstile siteverify से timeout-or-duplicate त्रुटि का आमतौर पर मतलब है कि token सत्यापन से पहले समाप्त हो गया या एक से अधिक बार जमा किया गया। Turnstile token एक बार उपयोग के लिए हैं और पाँच मिनट बाद समाप्त हो जाते हैं।

त्रुटि डिबगिंग के लिए:

  • https://challenges.cloudflare.com/turnstile/v0/siteverify पर अनुरोधों का लॉगिंग सक्षम करें
  • token निर्माण समय की तुलना सत्यापन समय से करें।
  • जाँचें कि क्या आपका backend एक ही token को दो बार सत्यापित करता है, उदाहरण के लिए पुनः प्रयास, रीडायरेक्ट या डुप्लिकेट अनुरोध हैंडलिंग के दौरान।