В этой статье мы постарались дать ответы на все вопросы. А начать решение задачи нужно с определения того, какая система защиты используется. Для этого можно обратиться к списку популярных капч и систем антибот-защиты, где представлены визуальные примеры и ключевые признаки, которые могут помочь быстро определить, с чем вы имеете дело.
Если вы обнаружили, что на вашем сайте используется Prosopo Procaptcha, следующим шагом станет более подробное изучение её свойств и самой работы. Также в этой статье вы можете изучить инструкцию по подключению системы Prosopo Procaptcha, чтобы полностью разобраться, как она функционирует на вашем сайте. Это позволит не только понимать текущую защиту, но и грамотно планировать её поддержку.
При тестировании форм с Prosopo Procaptcha часто возникает необходимость проверить работу капчи и убедиться, что она корректно интегрирована.
Вы можете вручную протестировать подставленную на ваш сайт капчу.
Для автоматического распознавания капчи можно использовать специализированные сервисы, например, CapMonster Cloud — инструмент, который принимает параметры капчи, обрабатывает их на своих серверах и возвращает готовый токен. Этот токен можно подставить в форму, чтобы пройти проверку без участия пользователя.
Работа с CapMonster Cloud через API обычно включает следующие шаги:
type - ProsopoTask
websiteURL - полный URL страницы с капчей;
websiteKey - значение параметра siteKey, найденное на странице.
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 формы или endpoint, куда нужно отправить токен
const formURL = "https://example..com/en/your-form-endpoint";
// Пример данных формы
const formData = {
email: "example@example.com",
password: "yourpassword",
"procaptcha-response": token // токен от Procaptcha
};
try {
const response = await fetch(formURL, {
method: "POST",
headers: {
"Content-Type": "application/json", // или 'application/x-www-form-urlencoded' в зависимости от сайта
},
body: JSON.stringify(formData),
});
const result = await response.text(); // или response.json() если сервер возвращает JSON
console.log("Server response:", result);
} catch (err) {
console.error("Error sending token:", err);
}
}
// Основная функция
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);
// Отправка токена на сайт
await sendTokenToSite(result.solution); // result.solution содержит токен Procaptcha
}
solveAndSend().catch(console.error);
1. Получите ключи (sitekey и secret key)
2. Добавьте свой домен
3. Подключите скрипт Procaptcha
Поместите тег в <head>
<script type="module" src="https://js.prosopo.io/js/procaptcha.bundle.js" async defer></script>>4. Вариант 1: Implicit rendering (автоматическая отрисовка) — ПРОЩЕ
Добавьте контейнер, где капча появится автоматически:
<div class="procaptcha" data-sitekey="your_site_key"></div>Обычно он размещается внутри формы.
<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>После успешной проверки капчи будет добавлен скрытый параметр:
5. Вариант 2: Explicit rendering (ручная отрисовка) — БОЛЬШЕ КОНТРОЛЯ
<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. Настройка типа капчи (необязательно)
Можно явно выбрать:
Например:
<div class="procaptcha"
data-sitekey="your_site_key"
data-captcha-type="pow">
</div>7. Обязательный этап: серверная проверка токена
После рендеринга капчи сервер обязан проверить ответ. Проверка выполняется через API:
https://api.prosopo.io/siteverifyСодержимое запроса:
{
"secret": "your_secret_key",
"token": "PROCAPTCHA-RESPONSE"
}8. Серверная проверка на 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;
}
?>Что считается успешной проверкой?
Если сервер Procaptcha возвращает:
{
"verified": true
}— капча пройдена, можно выполнять защищённое действие (например, регистрировать пользователя).
Если вам достался сайт с уже установленной капчей или другой системой защиты и при этом нет доступа к коду — ничего страшного! Определить, какая именно технология используется, достаточно легко. А для проверки корректности работы можно использовать сервис распознавания CapMonster Cloud в изолированной тестовой среде, чтобы убедиться, что механизм обработки токенов и логика проверки функционируют корректно.
В случае с Prosopo Procaptcha — достаточно распознать систему, изучить её поведение и убедиться, что защита функционирует корректно. В статье мы показали, как определить Prosopo Procaptcha и где найти инструкции по её подключению или перенастройке, чтобы уверенно поддерживать защиту и контролировать её работу.