logo
bars

छवियों वाला CAPTCHA (ComplexImage)
और CapMonster Cloud

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

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

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

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

CapMonster Cloud के माध्यम से छवियों वाला CAPTCHA कैसे हल करें

Tencent CAPTCHA वाले फॉर्म्स का परीक्षण करते समय अक्सर यह सुनिश्चित करना पड़ता है कि CAPTCHA सही ढंग से काम कर रही है और सही तरीके से इंटीग्रेट की गई है।
आप अपने साइट पर CAPTCHA को मैन्युअली टेस्ट कर सकते हैं:
  • फॉर्म वाली पेज खोलें और सुनिश्चित करें कि CAPTCHA दिखाई दे रही है।
  • CAPTCHA हल किए बिना फॉर्म सबमिट करने का प्रयास करें — सर्वर को एरर देना चाहिए।
  • CAPTCHA सफलतापूर्वक हल करने के बाद फॉर्म बिना किसी एरर के सबमिट होना चाहिए।
स्वचालित CAPTCHA समाधान के लिए आप विशेष सर्विसेज़ का उपयोग कर सकते हैं, जैसे कि CapMonster Cloud — एक टूल जो CAPTCHA के पैरामीटर्स को अपने सर्वर्स पर प्रोसेस करता है और हल का उत्तर लौटाता है, जैसे कि क्लिक के लिए संख्या या कोऑर्डिनेट्स, जिन्हें उपयोगकर्ता की भागीदारी के बिना CAPTCHA पास करने के लिए उपयोग किया जा सकता है।

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

टास्क तैयार करनाटास्क तैयार करना
arrow
API अनुरोध भेजनाAPI अनुरोध भेजना
arrow
परिणाम प्राप्त करनापरिणाम प्राप्त करना
arrow
टोकन को पेज पर रखनाटोकन को पेज पर रखना
arrow
तैयार लाइब्रेरीज़ के साथ छवियों वाले CAPTCHA का समाधान
CapMonster Cloud सेवा Python, JavaScript (Node.js) और C# में काम करने के लिए तैयार लाइब्रेरीज़ प्रदान करती है।
Python
JavaScript
C#
हल डालना और फॉर्म सबमिट करना
Node.js में उदाहरण: आपकी वेबसाइट पर CAPTCHA का पूरा साइकिल। विकल्प: HTML और सुरक्षा पैरामीटर्स के लिए HTTP रिक्वेस्ट, हल भेजें और परिणाम प्रोसेस करें। या, उदाहरण के रूप में, ऑटोमेशन टूल्स (जैसे Playwright) का उपयोग करें — पेज खोलें, चेक के लिए प्रतीक्षा करें, CapMonster Cloud क्लाइंट के माध्यम से पैरामीटर्स भेजें, परिणाम प्राप्त करें, संबंधित फील्ड में डालें (टेस्ट के लिए सही या गलत डेटा) और परिणाम देखें।

// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium

import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, ComplexImageTaskRecognitionRequest } from '@zennolab_com/capmonstercloud-client';

const API_KEY = "YOUR_API_KEY";
const TARGET_URL = "https://example.com/captcha-page";

async function solveComplexImageTaskPlaywright() {
    const browser = await chromium.launch({ headless: false });
    const context = await browser.newContext();
    const page = await context.newPage();
    await page.goto(TARGET_URL);

    // CAPTCHA इमेज को ढूँढें
    const captchaHandle = await page.$('#captcha'); // असली सेलेक्टर डालें
    const captchaBase64 = await captchaHandle.evaluate(img => {
        const canvas = document.createElement('canvas');
        canvas.width = img.width;
        canvas.height = img.height;
        const ctx = canvas.getContext('2d');
        ctx.drawImage(img, 0, 0);
        return canvas.toDataURL('image/png').split(',')[1];
    });

    console.log("Captcha base64:", captchaBase64.substring(0, 50) + "...");

    const cmcClient = CapMonsterCloudClientFactory.Create(
        new ClientOptions({ clientKey: API_KEY })
    );

    // CAPTCHA को पहचान के लिए भेजें
    const citRecognitionRequest = new ComplexImageTaskRecognitionRequest({
        imagesBase64: [captchaBase64],
        metaData: { Task: 'oocl_rotate' } // अपने CAPTCHA प्रकार को बदलें
    });

    const result = await cmcClient.Solve(citRecognitionRequest);
    console.log("Solution received:", result);

    // हल की प्रक्रिया
    const solution = result.solution;

    if (!solution) {
        console.error("No solution received");
        return;
    }

    if (solution.metadata?.AnswerType === "Coordinate") {
        // कोऑर्डिनेट CAPTCHA
        const box = await captchaHandle.boundingBox();
        for (const point of solution.answer) {
            const clickX = box.x + point.X;
            const clickY = box.y + point.Y;
            console.log(`Clicking at: (${clickX}, ${clickY})`);
            await page.mouse.click(clickX, clickY);
        }
    } else if (solution.metadata?.AnswerType === "Grid") {
        // ग्रिड CAPTCHA (true/false एरे)
        const box = await captchaHandle.boundingBox();
        const gridItems = await page.$$('#captcha_grid div'); // ग्रिड एलिमेंट के सेलेक्टर्स बदलें
        const answers = solution.answer;

        for (let i = 0; i < answers.length; i++) {
            if (answers[i] && gridItems[i]) {
                const itemBox = await gridItems[i].boundingBox();
                const clickX = itemBox.x + itemBox.width / 2;
                const clickY = itemBox.y + itemBox.height / 2;
                console.log(`Clicking grid item ${i} at: (${clickX}, ${clickY})`);
                await page.mouse.click(clickX, clickY);
            }
        }
    } else {
        console.warn("Unknown captcha solution type:", solution.metadata?.AnswerType);
    }

    // कन्फ़र्मेशन बटन पर क्लिक करें (यदि मौजूद हो)
    await page.click('#submit_button'); // असली बटन सेलेक्टर डालें

    console.log("Captcha solved.");
}

solveComplexImageTaskPlaywright().catch(console.error);
  
कैसे अपने साइट पर छवियों वाला CAPTCHA जोड़ें
CAPTCHA की कार्यप्रणाली समझने, लॉजिक जांचने या री-कॉन्फ़िगर करने के लिए इस सेक्शन का अध्ययन करें। यह सुरक्षा जोड़ने की सामान्य प्रक्रिया बताता है, जिससे सभी विवरण जल्दी समझ में आते हैं।

1. सर्वर पर CAPTCHA बनाना।

  • CAPTCHA इमेज बनती है: एक इमेज या इमेज ग्रिड।
  • बॉट्स से सुरक्षा के लिए शोर, विकृति और यादृच्छिक तत्व जोड़े जाते हैं।
  • एक यूनिक captchaId बनता है और सही हल को स्टोर किया जाता है (मेमोरी, DB या कैश में)।

2. CAPTCHA क्लाइंट को भेजना

  • सर्वर क्लाइंट को captchaId और इमेज (Base64 या URL) भेजता है।
  • क्लाइंट CAPTCHA दिखाता है, उदाहरण: <img> या <div> ग्रिड के साथ निर्देश।
क्लाइंट साइड उदाहरण (HTML + JS)क्लाइंट साइड उदाहरण (HTML + JS)
arrow

3. उपयोगकर्ता द्वारा उत्तर देना

  • उपयोगकर्ता टेक्स्ट दर्ज करता है, इमेज क्लिक करता है या ऑब्जेक्ट घुमाता है।
  • क्लाइंट उत्तर सही संरचना में बनाता है:
    • टेक्स्ट CAPTCHA → स्ट्रिंग
    • ग्रिड → true/false एरे
    • कोऑर्डिनेट्स → {X, Y} एरे

4. उत्तर सर्वर को भेजना:

  • क्लाइंट POST में captchaId और उत्तर भेजता है।
  • सत्र टोकन भेजा जा सकता है दोबारा प्रयास से बचने के लिए।

5. सर्वर पर जांच

  • सर्वर captchaId से CAPTCHA सत्र खोजता है।
  • उपयोगकर्ता उत्तर की तुलना सही हल से करता है।
  • success: true/false लौटाता है।
  • असफलता पर CAPTCHA रीफ्रेश हो सकती है।
सर्वर साइड उदाहरणसर्वर साइड उदाहरण
arrow

6. आगे की कार्रवाई

  • सफल CAPTCHA → सुरक्षित प्रक्रिया (फॉर्म, रजिस्ट्रेशन) की अनुमति।
  • असफल CAPTCHA → नई CAPTCHA, प्रयास सीमा लगाना संभव।

अतिरिक्त

  • CAPTCHA सत्र के लिए TTL लागू करें ताकि वे ऑटोमैटिक एक्सपायर हों।
  • इमेजेस कैश करें और रिसोर्स बचाने के लिए टेम्पररी URL का उपयोग करें।
  • मोबाइल पर क्लिक और टच सही ढंग से काम करें।
  • लॉग्स और एनालिटिक्स रखें, UX और बॉट सुरक्षा सुधारें।
Background
संभावित त्रुटियाँ और डिबगिंग
Bug Icon
छवियों वाला CAPTCHA लोड नहीं हो रहा
(खाली ग्रिड, टूटी हुई इमेज, 404/500 त्रुटियाँ, base64 समस्याएँ) — सुनिश्चित करें कि सर्वर सही तरीके से इमेज जनरेट कर रहा है, base64 डेटा क्षतिग्रस्त नहीं है, इमेज फ़ॉर्मेट ब्राउज़र द्वारा समर्थित है और क्लाइंट को वैध captchaId मिल रही है।
Bug Icon
उपयोगकर्ता क्लिक संसाधित नहीं हो रहे हैं
(सेल चयनित नहीं होते या उत्तर खाली है) — सुनिश्चित करें कि क्लिक के निर्देशांक या इंडेक्स सर्वर को भेजे जा रहे हैं, डेटा सही तरीके से सीरियलाइज़ किया गया है और मोबाइल डिवाइस पर टच इवेंट समर्थित हैं।
Bug Icon
सही क्लिक के बावजूद कैप्चा पास नहीं होता
जाँच करें कि सत्यापन से पहले कैप्चा दोबारा न बनाया जाए, सही उत्तर प्रत्येक सत्र के लिए अलग-अलग संग्रहीत हो, उत्तर का फ़ॉर्मेट अपेक्षित हो और कैप्चा की वैधता अवधि (TTL) समाप्त न हुई हो।
Bug Icon
CAPTCHA का समय समाप्त
यदि उपयोगकर्ता अधिक समय लेता है, TTL बढ़ाएं, रिट्री के समय CAPTCHA रिफ्रेश करें और उपयोगकर्ता को इमेज रीलोड के लिए सूचित करें।
सुरक्षा की मजबूती की जाँच
इंटीग्रेशन के बाद सुनिश्चित करें कि सिस्टम वास्तव में साइट को स्वचालित कार्रवाइयों से बचा रहा है।
सुरक्षा और अनुकूलन के सुझाव
सही उत्तर केवल <b>सर्वर</b> पर रखें (मेमोरी, Redis, DB), क्लाइंट पर कभी न दें।
वन-टाइम CAPTCHA IDs (<b>captchaId</b>) का उपयोग करें।
प्रति CAPTCHA प्रयासों की संख्या सीमित करें।
इमेज और क्लिक ट्रांसमिशन के लिए हमेशा <b>HTTPS</b> का उपयोग करें।
इमेजेस कैश करें और <b>टेम्पररी URL</b> का उपयोग करें।
जनरेशन और वेरिफिकेशन एरर लॉग करें (समय, IP/fingerprint, रिजेक्ट कारण)।
CAPTCHA मैकेनिज़्म नियमित अपडेट करें (इमेज सेट, ग्रिड साइज/स्ट्रक्चर, टास्क प्रकार)।
निष्कर्ष

यदि आप ऐसे साइट पर हैं जहां CAPTCHA पहले से इंस्टॉल है या अन्य सुरक्षा है और कोड तक एक्सेस नहीं है — कोई समस्या नहीं! तकनीक पहचानना आसान है। कार्यक्षमता जाँचने के लिए CapMonster Cloud का आइसोलेटेड टेस्ट वातावरण उपयोग करें ताकि टोकन्स प्रोसेसिंग और लॉजिक सही हो।

छवियों वाले CAPTCHA के लिए सिस्टम पहचानें, व्यवहार समझें और सुनिश्चित करें कि सुरक्षा काम कर रही है। इस लेख में हमने दिखाया कि ComplexImage CAPTCHA को कैसे पहचानें और इसे जोड़ें या री-कॉन्फ़िगर करें ताकि सुरक्षा बनाए रखें और नियंत्रण में रहे।

Conclusion
उपयोगी लिंक
DocIconCapMonster Cloud (ComplexImage) डॉक्यूमेंटेशनDocIconअपना खुद का CAPTCHA बनाने की गाइडDocIconCapMonster Cloud सर्विस में रजिस्ट्रेशन