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.
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:
type - ProsopoTask
websiteURL - pełny URL strony z captcha;
websiteKey - wartość parametru siteKey, znalezioną na stronie.
https://api.capmonster.cloud/createTask
{
"clientKey": "API_KEY",
"task": {
"type": "ProsopoTask",
"websiteURL": "https://www.example.com",
"websiteKey": "5EZU3LG31uzq1Mwi8inwqxmfvFDpj7VzwDnZwj4Q3syyxBwV"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId":0,
"status":"ready",
"solution": {
"token": "0x00016c68747470733a2f2f70726f6e6f6465332e70726f736f706f2e696fc0354550516f4d5a454463354c704e376774784d4d7a5950547a4136..."
}
}
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);
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.
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.
<html>
<head>
<title>Procaptcha Demo</title>
<script type="module" src="https://js.prosopo.io/js/procaptcha.bundle.js" async defer></script>
</head>
<body>
<form action="" method="POST">
<input type="text" name="email" placeholder="Email" />
<input type="password" name="password" placeholder="Password" />
<div class="procaptcha" data-sitekey="your_site_key"></div>
<br />
<input type="submit" value="Submit" />
</form>
</body>
</html>Po pomyślnej weryfikacji captcha zostanie dodany ukryty parametr:
5. Opcja 2: Explicit rendering (ręczne renderowanie) — WIĘKSZA KONTROLA
<html>
<head>
<script
type="module"
id="procaptcha-script"
src="https://js.prosopo.io/js/procaptcha.bundle.js"
async
defer
></script>
</head>
<body>
<div id="procaptcha-container"></div>
</body>
</html>
document.getElementById('procaptcha-script').addEventListener('load', function () {
function onCaptchaVerified(output) {
console.log('Captcha verified, output: ' + JSON.stringify(output))
}
const captchaContainer = document.getElementById('procaptcha-container')
window.procaptcha.render(captchaContainer, {
siteKey: 'YOUR_SITE_KEY',
theme: 'dark',
callback: onCaptchaVerified,
})
})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:
https://api.prosopo.io/siteverifyZawartość żądania:
{
"secret": "your_secret_key",
"token": "PROCAPTCHA-RESPONSE"
}8. Weryfikacja serwerowa w PHP
<?php
function verifyToken($token) {
$url = 'https://api.prosopo.io/siteverify';
$data = json_encode(["secret" => "your_secret_key", "token" => $token]);
$options = [
'http' => [
'header' => "Content-Type: application/json\r\n",
'method' => 'POST',
'content' => $data,
],
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
return $response["verified"] ?? false;
}
?>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).
Obsługiwane captchas
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.