Neste artigo, procuramos responder a todas as principais dúvidas. Para começar a resolver o problema, o primeiro passo é identificar qual sistema de proteção está sendo utilizado. Para isso, você pode consultar a lista de captchas e sistemas de proteção antibot mais populares, onde há exemplos visuais e sinais principais que ajudam a identificar rapidamente com o que você está lidando.
Se você notar que o seu site utiliza Prosopo Procaptcha, o passo seguinte é estudar com mais detalhes as suas características e o seu funcionamento. Neste mesmo artigo, você também pode conferir o guia de integração do Prosopo Procaptcha, para entender por completo como o sistema opera no seu site. Isso permitirá não apenas compreender a proteção atual, mas também planejar adequadamente a sua manutenção.
Ao testar formulários com Prosopo Procaptcha, é comum precisar confirmar se a captcha está funcionando e integrada corretamente.
Você pode testar manualmente a captcha incorporada no site.
Para resolver automaticamente use ferramentas como o CapMonster Cloud, que recebe os parâmetros da captcha, processa em seus servidores e devolve um token pronto. Basta inseri-lo no formulário para passar na verificação sem interação humana.
Trabalhar com o CapMonster Cloud via API normalmente envolve as etapas abaixo:
type - ProsopoTask
websiteURL - URL completo da página com captcha;
websiteKey - valor do parâmetro siteKey encontrado na página.
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 do formulário ou endpoint para envio do token
const formURL = "https://example..com/en/your-form-endpoint";
// Exemplo de dados do formulário
const formData = {
email: "example@example.com",
password: "yourpassword",
"procaptcha-response": token // token do Procaptcha
};
try {
const response = await fetch(formURL, {
method: "POST",
headers: {
"Content-Type": "application/json", // или 'application/x-www-form-urlencoded' dependendo do site
},
body: JSON.stringify(formData),
});
const result = await response.text(); // ou response.json() se o servidor retornar JSON
console.log("Server response:", result);
} catch (err) {
console.error("Error sending token:", err);
}
}
// Função principal
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);
// Envio do token para o site
await sendTokenToSite(result.solution); // result.solution contém o token Procaptcha
}
solveAndSend().catch(console.error);
1. Obtenha as chaves (sitekey e secret key)
2. Adicione seu domínio
3. Conecte o script Procaptcha
Coloque a tag em <head>
<script type="module" src="https://js.prosopo.io/js/procaptcha.bundle.js" async defer></script>>4. Opção 1: Implicit rendering (renderização automática) — MAIS SIMPLES
Adicione um container onde a captcha aparecerá automaticamente:
<div class="procaptcha" data-sitekey="your_site_key"></div>Normalmente localizado dentro do formulário.
<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>Após a verificação bem-sucedida, será adicionado um parâmetro oculto:
5. Opção 2: Explicit rendering (renderização manual) — MAIS CONTROLE
<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. Configuração do tipo de captcha (opcional)
Pode-se escolher explicitamente:
Por exemplo:
<div class="procaptcha"
data-sitekey="your_site_key"
data-captcha-type="pow">
</div>7. Etapa obrigatória: verificação do token no servidor
Após renderizar a captcha, o servidor deve verificar a resposta. A verificação é feita via API:
https://api.prosopo.io/siteverifyConteúdo da requisição:
{
"secret": "your_secret_key",
"token": "PROCAPTCHA-RESPONSE"
}8. Verificação no servidor em 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;
}
?>O que é considerado uma verificação bem-sucedida?
Se o servidor Procaptcha retornar:
{
"verified": true
}— captcha aprovada, você pode realizar a ação protegida (por exemplo, registrar um usuário).
Se você 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 tem problema! É bem fácil identificar qual tecnologia está sendo usada. Para verificar se tudo está funcionando corretamente, você pode usar o serviço de reconhecimento CapMonster Cloud em um ambiente de testes isolado, para garantir que o mecanismo de processamento de tokens e a lógica de verificação estejam funcionando corretamente.
No caso de Prosopo Procaptcha, basta identificar o sistema, analisar o comportamento dele e se certificar de que a proteção está funcionando corretamente. No artigo, mostramos como identificar Prosopo Procaptcha e onde encontrar instruções para a integração ou reconfiguração, para que você consiga manter a proteção com segurança e controlar o funcionamento dela.