logo
bars

Cloudflare Challenge
i CapMonster Cloud

Rozwiązywanie captcha, instalacja na stronie i testowanie.
Herdou um site com captcha ou outra proteção mas sem acesso ao código-fonte? É natural perguntar qual solução está instalada, se está configurada corretamente e como testá-la.

Neste artigo procurámos responder a todas as questões importantes. Para começar a resolver o problema, o primeiro passo é identificar que sistema de proteção está a ser utilizado. Para isso, pode consultar a lista de captchas e sistemas de proteção antibot mais populares, onde encontrará exemplos visuais e sinais principais que ajudam a perceber rapidamente com o que está a lidar.

Se verificar que o seu site utiliza Cloudflare Challenge, o passo seguinte é analisar mais detalhadamente as suas características e o seu funcionamento. Neste mesmo artigo também pode consultar o guia de integração de Cloudflare Challenge, para compreender totalmente como o sistema funciona no seu site. Isto permitirá não só entender a proteção atual, como também planear corretamente a sua manutenção.

Co to jest Cloudflare Challenge
Co to jest Cloudflare Challenge
Cloudflare Challenge (lub Interstitial Challenge Pages) to system weryfikacji od Cloudflare, zaprojektowany w celu ochrony stron internetowych przed botami, spamem i złośliwym ruchem. Gdy Cloudflare podejrzewa, że żądanie nie pochodzi od prawdziwego użytkownika (np. z powodu podejrzanego IP lub braku JavaScript), wyświetla Challenge — czyli „wyzwanie”, które należy przejść, aby potwierdzić, że jesteś człowiekiem. Ten typ weryfikacji różni się od Turnstile, ponieważ użytkownik najpierw widzi stronę pośrednią z komunikatem „Just a moment…” i „Verifying you are human. This may take a few seconds.”

Jak rozwiązać Cloudflare Challenge za pomocą CapMonster Cloud

Ao testar a proteção com o Cloudflare Challenge, é importante garantir que a verificação funcione corretamente e filtre adequadamente o tráfego suspeito.
Możesz ręcznie przetestować zainstalowany na swojej stronie challenge:
  • Otwórz stronę w trybie incognito tam, gdzie spodziewana jest weryfikacja Challenge i upewnij się, że captcha jest wyświetlana.
  • Spróbuj wstawić w przeglądarce błędne ciasteczka cf_clearance (szczegóły poniżej) — serwer powinien zwrócić błąd.
  • Po pomyślnym rozwiązaniu captcha strona powinna otworzyć się bez dalszej weryfikacji.
Do automatycznego testowania i rozpoznawania captcha można użyć specjalistycznych usług, takich jak CapMonster Cloud — narzędzie, które przyjmuje parametry captcha, przetwarza je na swoich serwerach i zwraca gotowe rozwiązanie. Rozwiązanie to (token lub ciasteczko) można wstawić w formularz lub przeglądarkę, aby przejść weryfikację bez udziału użytkownika.

Trabalhar com o CapMonster Cloud através da API normalmente envolve os passos seguintes:

Criação da tarefaCriação da tarefa
arrow
Envio do pedido APIEnvio do pedido API
arrow
Receção do resultadoReceção do resultado
arrow
Podstawienie cf_clearancePodstawienie cf_clearance
arrow
Rozpoznawanie Cloudflare Challenge za pomocą gotowych bibliotek
Serwis CapMonster Cloud udostępnia gotowe biblioteki do pracy w językach Python, JavaScript (Node.js) i C#.
Python
JavaScript
C#
Rozwiązanie Challenge i podstawienie ciasteczka
Przykład w Node.js dla pełnego cyklu rozpoznawania captcha na stronie internetowej. Możliwe podejścia: użycie żądań HTTP do pobrania HTML i parametrów systemu ochrony, wysłanie odpowiedzi i przetworzenie wyniku. Lub za pomocą narzędzi automatyzacyjnych (np. Playwright) — otworzyć stronę, poczekać na weryfikację, wysłać parametry przez CapMonster Cloud, uzyskać wynik, wstawić ciasteczka w przeglądarce (do testów można użyć zarówno poprawnych, jak i niepoprawnych danych) i zobaczyć rezultat.

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

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

// Ustawienia — zamień na swoje wartości
const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://www.example.com';
const SITE_KEY = 'xxxxx'; // można przekazać dowolny ciąg
const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36';

// Ustawienia proxy
const proxy = {
  proxyType: 'http',
  proxyAddress: '8.8.8.8',
  proxyPort: 8080,
  proxyLogin: 'proxyLogin',
  proxyPassword: 'proxyPassword'
};

async function main() {

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

  // Uruchamiamy przeglądarkę
  const browser = await chromium.launch({
    headless: false,
    proxy: proxy.proxyAddress ? {
      server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
      username: proxy.proxyLogin,
      password: proxy.proxyPassword
    } : undefined
  });

  // Tworzymy kontekst z odpowiednim User-Agent i rozmiarem okna (opcjonalnie)
  const context = await browser.newContext({ userAgent: USER_AGENT, viewport: { width: 1280, height: 800 } });

  // Tworzymy stronę i ładujemy docelowy URL
  const page = await context.newPage();
  const resp = await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
  console.log('Status początkowego żądania:', resp?.status());

  // Pobieramy HTML strony i konwertujemy na Base64 dla CapMonster
  const htmlBase64 = Buffer.from(await page.content(), 'utf-8').toString('base64');

  // Tworzymy zadanie Turnstile, aby uzyskać cf_clearance
  const solveResult = await cmcClient.Solve(new TurnstileRequest({
    websiteURL: TARGET_URL,
    websiteKey: SITE_KEY,
    cloudflareTaskType: 'cf_clearance',
    htmlPageBase64: htmlBase64,
    userAgent: USER_AGENT,
    proxy: proxy.proxyAddress ? proxy : undefined
  }));

  const cf_clearance = solveResult?.solution?.cf_clearance;
  if (!cf_clearance) {
    console.error('Nie udało się uzyskać cf_clearance z CapMonster:', solveResult);
    await browser.close();
    return;
  }
  console.log('Uzyskano cf_clearance:', cf_clearance);

  // Dodajemy cf_clearance cookie do kontekstu przeglądarki
  await context.addCookies([{
    name: 'cf_clearance',
    value: cf_clearance,
    domain: '.' + new URL(TARGET_URL).hostname,
    path: '/',
    httpOnly: true,
    secure: true
  }]);
  console.log('Cookie cf_clearance zostało pomyślnie dodane do przeglądarki.');

  // Ponownie otwieramy stronę z ustawionym cf_clearance
  const page2 = await context.newPage();
  const resp2 = await page2.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
  console.log('Status da solicitação após definir cf_clearance:', resp2?.status());

  await browser.close();
  console.log('Skrypt zakończył działanie.');
}

main().catch(err => {
  console.error('Wystąpił błąd:', err);
  process.exit(1);
});
  
Jak podłączyć Cloudflare Challenge do swojej strony
Aby zrozumieć działanie captcha na swojej stronie, logikę weryfikacji i jak ponownie podłączyć lub skonfigurować, zalecamy ten rozdział. Opisuje proces konfiguracji ochrony, co pomoże szybko zrozumieć wszystkie niuanse.
1. Zarejestruj się lub zaloguj i podłącz domenę do Cloudflare.
2. Włącz Challenge za pomocą reguły WAF.
Przejdź do: Security → Custom Rules → Create rule
HowTo Connect image 1

Przykład warunku (sprawdź całą stronę logowania):
http.request.uri.path contains "/login"
3. Wybierz akcję:
Managed Challenge (zalecane) — system sam decyduje, czy i jaki challenge wyświetlić.
Ustaw pozostałe opcje i kliknij Deploy.
Po weryfikacji użytkownik otrzyma ciasteczko cf_clearance, które pozwoli uniknąć ponownego wyświetlania Challenge na tym samym urządzeniu i przeglądarce.
Background
Possíveis erros e depuração
Bug Icon
Nieprawidłowa domena lub konfiguracja reguły
Challenge nie jest wyświetlany. Sprawdź, czy reguła WAF jest powiązana z odpowiednim URI, ścieżką lub hostem.
Bug Icon
Limit czasu ładowania strony lub challenge
Przeglądarka lub klient nie czekał na odpowiedź Cloudflare. Zwiększ timeouty w testach i monitoringu.
Bug Icon
Powtórna weryfikacja lub wygasłe cf_clearance
Jeśli odwiedzający używa już wygasłego cf_clearance, system ponownie pokaże Challenge.
Bug Icon
Po Challenge następuje inna weryfikacja
Jednoczesne użycie Challenge + reguł niestandardowych może prowadzić do cyklicznych weryfikacji. Postępuj zgodnie z zaleceniami Cloudflare w celu rozwiązania tego problemu.
Verificações de robustez
Recomendações de segurança e otimização
Skonfiguruj reguły WAF i Managed/JS/Interactive Challenge zgodnie z poziomem ryzyka.
Loguj zdarzenia bezpieczeństwa i status przejścia Challenge, aby zrozumieć powody blokad i wykrywać fałszywe alarmy.
Dla przejrzystości i zgodności dodaj linki do <b>Polityki prywatności</b> i <b>Regulaminu</b> Cloudflare/strony na stronach z Challenge.
Conclusão

Se herdou um site que já tem um captcha ou outro sistema de proteção instalado e não tem acesso ao código, não há problema! É bastante fácil identificar qual a tecnologia que está a ser utilizada. Para verificar se tudo está a funcionar corretamente, pode usar o serviço de reconhecimento CapMonster Cloud num ambiente de teste isolado, para garantir que o mecanismo de processamento de tokens e a lógica de verificação estão a funcionar corretamente.

No caso de Cloudflare Challenge, basta identificar o sistema, analisar o seu comportamento e confirmar que a proteção está a funcionar corretamente. No artigo, mostramos como identificar Cloudflare Challenge e onde encontrar instruções para a sua integração ou reconfiguração, para que possa manter a proteção com confiança e controlar o seu funcionamento.

Conclusion