Scarnox · Blog

Cloudflare Turnstile: यह कैसे काम करता है और इसे कैसे solve करें (जल्द आ रहा है)

Cloudflare Turnstile एक captcha है जो आम तौर पर visitor से कुछ नहीं माँगता। वह browser में जाँच चलाता है, और ज़्यादातर मामलों में बिना किसी puzzle के पास हो जाता है। जब उसे यकीन नहीं होता, तो वह एक छोटा interactive step दिखा सकता है। फिर widget form में एक token लिखता है, और site उस token को Cloudflare के साथ verify करती है। Turnstile के लिए Scarnox support जल्द आ रहा है। यह guide बताती है कि widget कैसे काम करता है, उसे दूसरे challenges के साथ क्यों भ्रमित किया जाता है, और वैध काम के लिए आम तरीके क्या हैं।

Widget कैसे embed होता है

Page में cf-turnstile class और data-sitekey attribute वाला एक container होता है। Turnstile script लोड होती है, अपनी जाँच चलाती है, और cf-turnstile-response नाम का एक छिपा हुआ input जोड़ती है। उस input की value token है। Form उसे बाकी fields के साथ submit करता है, और site का backend उसे site की secret key के साथ Cloudflare के verification endpoint पर भेजता है।

बाकी token widgets की तरह, verification server पर होता है। जो form उस field में कोई भी value बिना जाँचे स्वीकार करता है, वह असल में सुरक्षित नहीं है।

Modes और script के लिए उनका मतलब

Turnstile एक से ज़्यादा modes में चल सकता है। Managed mode में Cloudflare तय करता है कि interactive step दिखाना है या नहीं। Non-interactive mode में widget visitor से कभी कुछ नहीं माँगता और केवल एक status दिखाता है। Invisible mode में कुछ भी नहीं दिखता। Script के लिए mode बदलता है कि page पर आप क्या देखते हैं, पर नतीजा एक ही रहता है: form field में एक token, जिसे server पर verify किया जाता है।

Tokens अल्पकालिक और एक बार इस्तेमाल होने वाले हैं। Widget से token मिलते ही form जल्दी submit करें, और ऐसा token दोबारा इस्तेमाल न करें जो पहले ही verify हो चुका है।

यह automation को क्यों रोकता है

Turnstile browser environment के signals और session के व्यवहार को देखता है। Default headless browser, browser features का गायब या असंगत सेट, बिना history वाला नया session, और संदिग्ध network address, ये सभी फ़ैसले को challenge या block की ओर धकेल सकते हैं। ये signals दूसरे score-based checks वाले परिवार के ही हैं, इसीलिए तरीके मिलते-जुलते हैं।

वैध तरीके

वैध काम के लिए ये तरीके काम करते हैं:

  1. Turnstile वाले pages के लिए असली browser इस्तेमाल करें। सुसंगत settings वाला सामान्य browser profile, नंगे automation build की तुलना में कम challenge होता है। headless browser detection guide आम signals सूचीबद्ध करती है।
  2. Session में टिके रहें। अपने workflow के pages के बीच cookies रखें, ताकि visitor हर request पर नया न दिखे।
  3. Requests की rate तय करें। स्थिर, इंसान जैसी rate challenges को किसी भी एक चाल से ज़्यादा घटाती है।
  4. पहले संरक्षित site के नियम पढ़ें। कई संरक्षित sites API या feed देती हैं। Browser workflow बनाने से पहले उसे जाँचें। Cloudflare-protected sites को scrape करना guide तरीके को और गहराई से कवर करती है।
  5. Development में test keys इस्तेमाल करें। Cloudflare development के लिए test site keys देता है, जो बिना असली जाँच के अनुमानित नतीजे देती हैं। ये आपके अपने integration tests के लिए हैं, production traffic के लिए नहीं।
  6. Owner से पूछें। अगर आप site चलाते हैं, तो आप उन paths के लिए Turnstile settings बदल सकते हैं जिन्हें आपके automated tests इस्तेमाल करते हैं। अगर नहीं चलाते, तो allowlist या API माँगें।

Turnstile solver क्या करेगा

Token-based Turnstile solver sitekey और page URL लेता है, cf-turnstile-response field के लिए एक valid token बनाता है, और उसे आपके code को लौटाता है। आपका code token को form में डालता है और तुरंत submit करता है। यह live PopularCaptcha integration वाला ही पैटर्न है, बस task type अलग है।

Scarnox अभी Turnstile को live solve नहीं करता। आज एकमात्र live task type PopularCaptcha, proxyless है। Turnstile जल्द आ रहा है, और जब आएगा तब उसका request विवरण API reference में होगा। उससे पहले किसी अनुमानित interface के लिए build न करें।

आम गलतियाँ

Turnstile integrations कुछ अनुमानित तरीकों से फ़ेल होते हैं। सबसे आम है expire हो चुके या पहले से verify हो चुके token का इस्तेमाल। Tokens एक बार इस्तेमाल होने वाले हैं, इसलिए form submit फ़ेल होने के बाद retry के लिए widget का नया नतीजा चाहिए, पुराना value नहीं। दूसरी गलती है किसी दूसरे environment की sitekey। Production page पर development key, या इसका उल्टा, एक verification failure देता है जो आपके code का bug जैसा दिखता है। कुछ भी debug करने से पहले जाँचें कि page कौन-सी key इस्तेमाल कर रहा है।

एक और आम गलती है interactive step को failure मान लेना। Managed mode में Turnstile कुछ visitors को छोटा step दिखा सकता है, और जो script silent pass की उम्मीद करती है वह वहीं अटक जाएगी। Flow ऐसा बनाएँ कि widget के नतीजे का इंतज़ार करे, और उस स्थिति को भी संभाले जब widget और माँगे।

आखिर में, field का नाम लाइव page पर जाँचे बिना hard-code न करें। cf-turnstile-response input मानक है, पर site widget को अलग तरीके से wrap कर सकती है, और रेंडर हुए form को पढ़ना अंदाज़ा लगाने से तेज़ है।

ज़िम्मेदारी से scrape करें

Turnstile से संरक्षित site को scrape करना एक आम काम है, और उसे किसी भी दूसरी scraping जितनी सावधानी चाहिए। robots.txt और terms of service जाँचें। अपनी rate कम रखें, और वह personal data न लें जिसकी ज़रूरत नहीं। जहाँ site का API है, उसे प्राथमिकता दें। मुख्य सवालों के लिए क्या web scraping legal है guide देखें।

तैयारी

खाता बनाएँ और मुफ़्त ट्रायल क्रेडिट से शुरू करें, कार्ड की ज़रूरत नहीं। जब Turnstile support आएगा, तो आप किसी भी लाइव site पर कुछ चलाने से पहले अपने अपने pages पर उसे टेस्ट कर पाएँगे।

अगले कदम