logo
bars

MTCaptcha
i CapMonster Cloud

Rozwiązanie captchy, instalacja na stronie i testowanie.
Odziedziczyłeś stronę z już wdrożoną captchą lub ochroną, ale bez dostępu do kodu źródłowego? Naturalnie pojawia się pytanie, jaka technologia jest używana, czy działa poprawnie i jak ją przetestować.

W tym artykule staraliśmy się odpowiedzieć na wszystkie najważniejsze pytania. Pierwszym krokiem w rozwiązywaniu problemu jest ustalenie, jaki system ochrony jest używany. W tym celu możesz skorzystać z listy popularnych captcha i systemów ochrony antybotowej, gdzie znajdziesz przykłady graficzne oraz kluczowe cechy, które pomogą szybko rozpoznać, z czym masz do czynienia.

Jeśli okaże się, że na Twojej stronie używany jest MTCaptcha, kolejnym krokiem będzie dokładniejsze poznanie jej właściwości i sposobu działania. W tym artykule możesz również zapoznać się z instrukcją integracji systemu MTCaptcha, aby w pełni zrozumieć, jak funkcjonuje on na Twojej stronie. Dzięki temu nie tylko lepiej poznasz obecną ochronę, ale też świadomie zaplanujesz jej dalsze utrzymanie.

Czym jest MTCaptcha
Czym jest MTCaptcha
MTCaptcha to system ochrony strony internetowej przed działaniami zautomatyzowanymi, wykorzystujący inteligentną weryfikację i captcha. Najpierw serwis analizuje ruch w tle. Jeśli zachowanie odwiedzającego wydaje się podejrzane, system automatycznie wyświetla tekstową captchę w celu dodatkowej weryfikacji.

Jak rozwiązać MTCaptcha przez CapMonster Cloud

Podczas testowania formularzy z MTCaptcha często trzeba zweryfikować, czy captcha jest poprawnie zintegrowana i działa.

Możesz ręcznie sprawdzić captchę na swojej stronie.

  • Otwórz stronę formularza i upewnij się, że captcha się wyświetla.
  • Spróbuj wysłać formularz bez rozwiązania — serwer powinien zwrócić błąd.
  • Po poprawnym rozwiązaniu formularz musi wysłać się bez problemów.

Do automatycznego rozwiązywania wykorzystaj narzędzia takie jak CapMonster Cloud, które przyjmują parametry captcha, przetwarzają je na serwerach i zwracają gotowy token. Wstaw go do formularza, aby przejść weryfikację bez udziału użytkownika.

Praca z CapMonster Cloud poprzez API zazwyczaj obejmuje następujące kroki:

Tworzenie zadaniaTworzenie zadania
arrow
Wysyłanie żądania APIWysyłanie żądania API
arrow
Odebranie wynikuOdebranie wyniku
arrow
Umieszczenie tokenu na stronieUmieszczenie tokenu na stronie
arrow
Rozpoznawanie MTCaptcha przy użyciu gotowych bibliotek
Serwis CapMonster Cloud udostępnia gotowe biblioteki do wygodnej pracy w Python, JavaScript (Node.js) i C#.
Python
JavaScript
C#
Rozwiązanie, wstawienie tokenu i wysłanie formularza
Przykład w Node.js dla pełnego cyklu rozpoznawania captchy na stronie internetowej. Możliwe podejścia: użycie zapytań HTTP do pobrania HTML i parametrów captchy, wysłanie odpowiedzi i przetworzenie wyniku; lub użycie narzędzi do automatyzacji (np. Playwright) — otwarcie strony, oczekiwanie na captchę, wysłanie parametrów (do testów można wysyłać zarówno poprawne, jak i niepoprawne dane), uzyskanie wyniku przez klienta CapMonster Cloud, wstawienie tokenu do formularza i zobaczenie wyniku.

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

const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://example.com';

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

 
  let websiteKey = null;
  page.on('request', request => {
    const url = request.url();
    if (url.startsWith('https://service.mtcaptcha.com/mtcv1/api/getchallenge.json')) {
      const params = new URL(url).searchParams;
      const sk = params.get('sk');
      if (sk) {
        websiteKey = sk;
        console.log('Extracted websiteKey (sk):', websiteKey);
      }
    }
  });

  
  await page.goto(TARGET_URL, { waitUntil: 'networkidle' });

  if (!websiteKey) {
    console.error('Failed to extract websiteKey (sk) from the page');
    await browser.close();
    return;
  }

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

  
  const mtcaptchaRequest = new MTCaptchaRequest({
    websiteURL: TARGET_URL,
    websiteKey: websiteKey,
    isInvisible: false,
    pageAction: 'login'
  });

  // Rozwiązanie captchy
  const result = await client.Solve(mtcaptchaRequest);

  
  const verifiedToken = typeof result?.solution?.value === 'string'
    ? result.solution.value
    : JSON.stringify(result.solution.token);

  console.log('VerifiedToken:', verifiedToken);

  
  // Wstawiamy token i wysyłamy formularz (zamień na odpowiedni selektor)
  await page.evaluate((token) => {
    const input = document.querySelector('#mtcaptcha-verifiedtoken-1');
    if (input) input.value = token;
  }, verifiedToken);

  console.log('Token inserted into input');

  
  // await page.click('button[type="submit"]');

  await page.waitForTimeout(5000);

  await browser.close();
}

main().catch(err => {
  console.error('An error occurred:', err);
});
Jak podłączyć MTCaptcha do swojej strony
Aby pewnie poruszać się po działaniu captchy na stronie, rozumieć logikę weryfikacji, ponownie podłączyć lub skonfigurować, zalecamy zapoznanie się z tym rozdziałem. Opisuje proces podłączenia ochrony — pomoże szybko zrozumieć wszystkie szczegóły.

1. Zarejestruj się lub zaloguj się na swoje konto MTCaptcha.

2. Po rejestracji dodaj swoją stronę. Otrzymasz dwa klucze.

  • Site Key — klucz publiczny dla frontendu, do wyświetlenia widgetu.
  • Private Key — klucz prywatny dla serwera, do weryfikacji poprawności rozwiązań captchy. Przechowuj go tylko na serwerze, nie przekazuj do klienta.

Przykład:

HowTo Connect image 1

3. Skonfiguruj klienta MTCaptcha:

Wstaw kod w <head> strony.

Zamień <YOUR SITE KEY> na swój Site Key otrzymany w panelu MTCaptcha.


  <head>
  <script>
    var mtcaptchaConfig = {
      sitekey: "<YOUR SITE KEY>"
    };
  
    (function() {
      var mt_service = document.createElement('script');
      mt_service.async = true;
      mt_service.src = 'https://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js';
      (document.head || document.body).appendChild(mt_service);
  
      var mt_service2 = document.createElement('script');
      mt_service2.async = true;
      mt_service2.src = 'https://service2.mtcaptcha.com/mtcv1/client/mtcaptcha2.min.js';
      (document.head || document.body).appendChild(mt_service2);
    })();
  </script>
</head>


Dodaj kontener captchy w <body>

Tam, gdzie chcesz wyświetlić captchę (np. wewnątrz formularza):

<div class="mtcaptcha"></div>

Widget załaduje się automatycznie.

HelpIcon

Możesz użyć gotowych SDK i wtyczek do szybkiej integracji:

  • Server-side SDKs: Java, Node.js, PHP
  • Client-side SDKs: React, React Native, Vue
  • CMS-wtyczki: WordPress, Drupal

MTCaptcha oferuje także wygodną stronę demo, na której można przetestować i skonfigurować ochronę przed podłączeniem do własnej strony.

4. Praca po stronie serwera. Uzyskaj Verified-Token na kliencie.

Poprzez ukryte pole formularza:

<input type="hidden" name="mtcaptcha-verifiedtoken" />

Lub przez JS:

mtcaptcha.getVerifiedToken() / mtcaptchaVerifiedCallback(status)

Wyślij token do serwera razem z formularzem lub żądaniem.

Sprawdź token przez API (weryfikacja po stronie serwera):

GET https://service.mtcaptcha.com/mtcv1/api/checktoken?privatekey=<PRIVATE_KEY>&token=<TOKEN>
  • privatekey — Twój klucz prywatny (tylko serwer)
  • token — token od klienta

Alternatywny URL dla serwerów z firewallem:

https://service2.mtcaptcha.com/mtcv1/api/checktoken

Przetwórz odpowiedź:

success: true → captcha zaliczona, kontynuuj przetwarzanie.

PrzykładPrzykład
arrow

success: false → błąd (token wygasł, ponowne użycie itp.)

HelpIcon
Każdy verifiedToken jest ważny przez kilka minut i może być sprawdzony tylko raz przez API CheckToken, co zapobiega ponownemu użyciu tokenu. Po uzyskaniu tokenu serwer musi zdążyć go zweryfikować — widget MTCaptcha gwarantuje co najmniej 50 sekund na walidację.

Prosty przykład z użyciem modułu MTCaptcha w Node.jsProsty przykład z użyciem modułu MTCaptcha w Node.js
arrow

HelpIcon

Aby dokładniej poznać możliwości MTCaptcha — dostosowanie widgetu, konfiguracja klienta i serwera, integracja z frameworkami i inne aspekty działania — zalecamy odwołanie się do oficjalnej dokumentacji.

Background
Możliwe błędy i debugowanie
Bug Icon
Nieprawidłowa strona lub klucz
Captcha się nie ładuje lub serwer zwraca invalid-privatekey lub privatekey-mismatch-token. Upewnij się, że używasz poprawnej pary sitekey i privatekey.
Bug Icon
Token nieobecny lub nieprawidłowy
Błędy missing-input-token, invalid-token, bad-request. Sprawdź, czy wartość tokena jest przekazywana do serwera i nie została zmodyfikowana.
Bug Icon
Wygasły token (token-expired)
Token jest ważny przez ograniczony czas (zazwyczaj ~120 sekund), po czym trzeba go uzyskać ponownie.
Bug Icon
Ponowna weryfikacja tokenu (token-duplicate-cal)
Token można sprawdzić tylko raz — to ochrona przed atakami replay.
Bug Icon
Wygasły lub dezaktywowany klucz (expired-sitekey-or-account)
Upewnij się, że klucze są aktualne i konto aktywne.
Bug Icon
Włącz logowanie żądań i wyświetlaj fail_codes, aby zdiagnozować przyczynę błędu.
Sprawdzenie odporności ochrony
Rekomendacje dotyczące bezpieczeństwa i optymalizacji
Przechowuj <b>privatekey wyłącznie na serwerze</b> — nie przekazuj go do klienta.
Loguj <b>fail_codes</b>, aby śledzić przyczyny błędów i analizować próby obejścia zabezpieczeń.
Umieść w formularzu linki do <b>Polityki prywatności</b> oraz <b>Regulaminu</b>, jeśli wymaga tego polityka Twojej platformy.
Wnioski

Jeśli przejąłeś stronę internetową, na której jest już zainstalowany captcha lub inny system zabezpieczeń, a jednocześnie nie masz dostępu do kodu — to nic strasznego! Dość łatwo jest ustalić, jaka dokładnie technologia jest używana. Aby sprawdzić poprawność działania, możesz skorzystać z usługi rozpoznawania CapMonster Cloud w odizolowanym środowisku testowym, żeby upewnić się, że mechanizm przetwarzania tokenów i logika weryfikacji działają prawidłowo.

W przypadku MTCaptcha wystarczy rozpoznać system, przeanalizować jego zachowanie i upewnić się, że zabezpieczenie działa poprawnie. W artykule pokazaliśmy, jak zidentyfikować MTCaptcha oraz gdzie znaleźć instrukcje dotyczące jego podłączenia lub ponownej konfiguracji, aby móc pewnie utrzymywać ochronę i kontrolować jej działanie.

Conclusion