Prosopo Procaptcha
i CapMonster Cloud

Rozwiązywanie captcha, instalacja na stronie i testowanie.

Cennik rozwiązania Prosopo Procaptcha

CAPTCHA
Cena (USD)
$ 1.30
1000 tokenów
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 Prosopo Procaptcha, 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 Prosopo Procaptcha, 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.

Co to jest Procaptcha
Co to jest Procaptcha
Procaptcha to system ochrony firmy Prosopo, stworzony w celu zapobiegania spamowi i automatycznym działaniom, które mogą zaszkodzić stronie. Pomaga odróżnić prawdziwych użytkowników od botów, zapewniając bezpieczeństwo i stabilność działania witryny. Jeśli system ma wątpliwości co do autentyczności odwiedzającego, proponuje zadanie weryfikacyjne (np. wybór określonych obrazów), przy czym prawdziwi użytkownicy mogą korzystać ze strony bez przeszkód.
Background
Przykłady Prosopo Procaptcha
Frictionless CAPTCHA
Frictionless CAPTCHA
Niewidoczna captcha. Automatycznie określa, czy odwiedzający jest prawdziwym użytkownikiem, czy botem. Jeśli użytkownik zachowuje się naturalnie (normalna przeglądarka, brak automatyzacji), captcha jest rozwiązywana w tle. Jeśli wykryte zostaną oznaki bota, użytkownik zobaczy dodatkowe zadanie image.
Proof of Work (PoW) CAPTCHA
Proof of Work (PoW) CAPTCHA
Captcha oparta na zadaniu obliczeniowym, tzn. wymusza na urządzeniu rozwiązanie małego zadania w tle. Głównym celem jest zatrzymanie masowych botów i spamu, ponieważ systemy automatyczne muszą poświęcić czas i zasoby na wykonanie zadania. Dla człowieka jest to zazwyczaj prawie niezauważalne.
Image CAPTCHA
Image CAPTCHA
Klasyczna wizualna captcha. Wyświetla obrazy i prosi o wybranie tych, które spełniają warunek (np. 'wybierz wszystkie konie').

Jak rozwiązać Procaptcha przez CapMonster Cloud

Podczas testowania formularzy z Prosopo Procaptcha 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 Procaptcha za pomocą gotowych bibliotek
Usługa CapMonster Cloud udostępnia gotowe biblioteki do wygodnej pracy w językach Python, JavaScript (Node.js) i C#.
Python
JavaScript
C#
Rozwiązanie, wstawienie tokena i wysłanie formularza
Przykład w Node.js dla pełnego cyklu rozpoznawania captcha na stronie internetowej. Możliwe podejścia: użycie żądań HTTP w celu pobrania HTML i parametrów captcha, wysłanie odpowiedzi i przetworzenie wyniku; lub przy użyciu narzędzi automatyzacyjnych (np. Playwright) — otwarcie strony, oczekiwanie na captcha, przesłanie parametrów (do testów można wysyłać zarówno poprawne, jak i niepoprawne dane), otrzymanie wyniku przez klienta CapMonster Cloud, wstawienie tokena do formularza i sprawdzenie rezultatu.

async function sendTokenToSite(token) {
    // URL formularza lub endpoint, do którego należy wysłać token
    const formURL = "https://example..com/en/your-form-endpoint";

    // Przykład danych formularza
    const formData = {
        email: "example@example.com",
        password: "yourpassword",
        "procaptcha-response": token // token Procaptcha
    };

    try {
        const response = await fetch(formURL, {
            method: "POST",
            headers: {
                "Content-Type": "application/json", // или 'application/x-www-form-urlencoded' w zależności od strony
            },
            body: JSON.stringify(formData),
        });

        const result = await response.text(); // lub response.json(), jeśli serwer zwraca JSON
        console.log("Server response:", result);
    } catch (err) {
        console.error("Error sending token:", err);
    }
}

// Główna funkcja
async function solveAndSend() {
    const client = CapMonsterCloudClientFactory.Create(
        new ClientOptions({ clientKey: API_KEY })
    );

    const prosopoRequest = new ProsopoRequest({
        websiteURL: "https://example.com/en/",
        websiteKey: "5EZU3LG31uzq1Mwi8inwqxmfvFDpj7VzwDnZwj4Q3syyxBwV"
    });

    const balance = await client.getBalance();
    console.log("Balance:", balance);

    const result = await client.Solve(prosopoRequest);
    console.log("Captcha solution:", result);

    // Wysłanie tokena na stronę
    await sendTokenToSite(result.solution); // result.solution zawiera token Procaptcha
}

solveAndSend().catch(console.error);

Jak podłączyć Procaptcha do swojej strony
Aby dobrze orientować się w działaniu captcha na Twojej stronie, rozumieć logikę weryfikacji, ponownie podłączyć lub skonfigurować, zalecamy zapoznanie się z tym rozdziałem. Opisuje on proces podłączenia ochrony — pomoże szybko zrozumieć wszystkie niuanse.

1. Uzyskaj klucze (sitekey i secret key)

  • 1) Wejdź do Prosopo Portal.
  • 2) Przejdź do Site Management
  • 3) Kliknij Reveal — pojawią się dwa klucze:
    • sitekey — publiczny, używany po stronie klienta.
    • secret key — prywatny, używać tylko na serwerze.
Ważne: Każdy widget tworzy własny zestaw kluczy. Nie można ich używać ponownie dla innego projektu.

2. Dodaj swoją domenę

  • 1) Przejdź do Account → Domains.
  • 2) Upewnij się, że Twoja domena jest wymieniona.
  • 3) Jeśli testujesz lokalnie — dodaj localhost.
  • 4) Przed produkcją usuń localhost.

3. Podłącz skrypt Procaptcha

Umieść tag w <head>

<script type="module" src="https://js.prosopo.io/js/procaptcha.bundle.js" async defer></script>>

4. Opcja 1: Implicit rendering (automatyczne renderowanie) — PROSTSZE

Dodaj kontener, w którym captcha pojawi się automatycznie:

<div class="procaptcha" data-sitekey="your_site_key"></div>

Zwykle znajduje się w formularzu.

Przykład pełnego formularzaPrzykład pełnego formularza
arrow

Po pomyślnej weryfikacji captcha zostanie dodany ukryty parametr:

5. Opcja 2: Explicit rendering (ręczne renderowanie) — WIĘKSZA KONTROLA

Przykład HTMLPrzykład HTML
arrow
Przykład JavaScriptPrzykład JavaScript
arrow

6. Konfiguracja typu captcha (opcjonalnie)

Można wybrać jawnie:

  • frictionless (domyślnie)
  • pow
  • image

Na przykład:


<div class="procaptcha"
     data-sitekey="your_site_key"
     data-captcha-type="pow">
</div>

7. Obowiązkowy etap: weryfikacja tokena po stronie serwera

Po renderowaniu captcha serwer musi sprawdzić odpowiedź. Weryfikacja odbywa się przez API:

POST
https://api.prosopo.io/siteverify

Zawartość żądania:

{
    "secret": "your_secret_key",
    "token": "PROCAPTCHA-RESPONSE"
}

8. Weryfikacja serwerowa w PHP

Przykład kodu:Przykład kodu:
arrow

Co jest uznawane za pomyślną weryfikację?

Jeśli serwer Procaptcha zwróci:

{
    "verified": true
}

captcha zaliczona, można wykonać chronione działanie (np. rejestrację użytkownika).

Background
Możliwe błędy i debugowanie
Bug Icon
Nieprawidłowy Site Key
Użyto niewłaściwego lub nieaktywnego site key. Rozwiązanie: upewnij się, że używasz poprawnego klucza, który można znaleźć w panelu Procaptcha.
Bug Icon
Nieautoryzowany URL źródła
Domena, na której zainstalowano widget, nie zgadza się z domeną powiązaną z site key. Rozwiązanie: sprawdź i zaktualizuj listę domen w ustawieniach portalu Procaptcha.
Bug Icon
Sesja nie znaleziona
Sesja nie została znaleziona lub wygasła. Rozwiązanie: poczekaj, aż widget się przeładuje (~3 sekundy) lub odśwież stronę. Jeśli błąd się powtarza, wyczyść pamięć podręczną i ciasteczka przeglądarki lub skontaktuj się z pomocą techniczną.
Bug Icon
Odpowiedź success=false
Token wygasł, został użyty ponownie lub nie przeszedł weryfikacji. Aby zdiagnozować problem, włącz logowanie żądań i sprawdź pole error w odpowiedzi Procaptcha.
Sprawdzenie odporności ochrony
Po integracji upewnij się, że system faktycznie chroni stronę przed automatycznymi działaniami.
Rekomendacje dotyczące bezpieczeństwa i optymalizacji
Przechowuj <span class="font-bold">Secret Key</span> wyłącznie na serwerze. Nigdy nie udostępniaj jej klientowi.
Loguj kody błędów <span class="font-bold">(error-codes)</span>, aby zrozumieć, dlaczego konkretne weryfikacje nie powiodły się.
Na dole formularzy dodaj linki do <span class="font-bold">Polityki prywatności</span> i <span class="font-bold">Regulaminu Procaptcha</span>, jeśli wymaga tego Twoja implementacja.
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 Prosopo Procaptcha wystarczy rozpoznać system, przeanalizować jego zachowanie i upewnić się, że zabezpieczenie działa poprawnie. W artykule pokazaliśmy, jak zidentyfikować Prosopo Procaptcha oraz gdzie znaleźć instrukcje dotyczące jego podłączenia lub ponownej konfiguracji, aby móc pewnie utrzymywać ochronę i kontrolować jej działanie.

Conclusion
Przydatne linki
DocIconDokumentacja ProcaptchaDocIconProsopo PortalDocIconDokumentacja CapMonster Cloud (praca z Procaptcha)

Często zadawane pytania o Prosopo Procaptcha

Procaptcha wykorzystuje trzy typy weryfikacji i wybiera najbardziej odpowiedni w zależności od poziomu ryzyka sesji odwiedzającego:

  • Frictionless CAPTCHA: Działa w tle i niewidocznie weryfikuje odwiedzającego, jeśli sygnały przeglądarki i zachowanie wyglądają na ludzkie. Podejrzane sesje mogą zostać przekierowane do widocznego wyzwania.
  • Proof of Work (PoW) CAPTCHA: Przydziela urządzeniu odwiedzającego małe zadanie obliczeniowe, co czyni masowe zautomatyzowane żądania bardziej kosztownymi, pozostając prawie niezauważalnym dla prawdziwych użytkowników.
  • Image CAPTCHA: Wyświetla wizualne wyzwanie, takie jak wybór wszystkich obrazów pasujących do polecenia „Wybierz wszystkie konie».

Tryb weryfikacji można określić za pomocą atrybutu data-captcha-type na divie widgetu. Ustaw go na frictionless dla niewidocznych kontroli w tle, pow dla łamigłówki Proof of Work lub image dla klasycznego wyzwania z wyborem obrazów.

Na przykład:

<div class="procaptcha"
     data-sitekey="your_site_key"
     data-captcha-type="pow">
</div>

Wartość data-captcha-type po stronie klienta musi ściśle odpowiadać typowi CAPTCHA skonfigurowanemu w ustawieniach konta Prosopo Portal.

Tak, możesz zintegrować rozwiązanie z dowolnym skryptem Python za pomocą uniwersalnych żądań HTTP.

Żądanie ID zadania: Wyślij żądanie POST do endpointu createTask z kluczem API, websiteURL i websiteKey.

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ProsopoTask",
    "websiteURL": "https://example.com",
    "websiteKey": "SITE_KEY"
  }
}

Oczekiwanie na wynik: Wyślij otrzymany taskId do endpointu getTaskResult, aż status będzie ready.

{
  "clientKey": "YOUR_API_KEY",
  "taskId": 123456789
}

Użycie tokenu: Wyciągnij ciąg z obiektu solution i przekaż go jako wartość procaptcha-response w ładunku HTTP (requests, aiohttp) lub wstrzyknij do DOM (Playwright, Puppeteer, Selenium).

Procaptcha obsługuje atrybut data-callback na divie widgetu dla renderowania niejawnego lub właściwość callback w obiekcie konfiguracji dla renderowania jawnego.

Określona funkcja jest wywoływana automatycznie po rozwiązaniu captcha, otrzymując ciąg tokenu jako pierwszy argument — w tym momencie możesz włączyć przycisk wysyłania, uruchomić żądanie AJAX lub zapisać token w stanie komponentu.

Użycie callback jest zazwyczaj czystsze niż odpytywanie pola procaptcha-response, ponieważ eliminuje wyścigi między rozwiązaniem widgetu a wysłaniem formularza.

Playwright, Puppeteer lub Selenium to kompatybilne podejścia do automatyzacji wstrzykiwania rozwiązanych tokenów Procaptcha. Ogólny przepływ jest identyczny:

  1. Przejście do strony docelowej
  2. Oczekiwanie na załadowanie widgetu Procaptcha
  3. Żądanie tokenu z CapMonster Cloud przez API (lub SDK klienta)
  4. Wstrzyknięcie zwróconego tokenu na stronę za pomocą natywnych metod manipulacji DOM frameworka przed wyzwoleniem wysłania formularza.