Bu makalede tüm önemli sorulara cevap vermeye çalıştık. Bir problemi çözmeye başlamanın ilk adımı, hangi koruma sisteminin kullanıldığını belirlemektir. Bunun için, görsel örneklerin ve neyle karşı karşıya olduğunuzu hızlıca anlamanıza yardımcı olabilecek temel işaretlerin yer aldığı popüler captcha ve anti-bot koruma sistemleri listesine başvurabilirsiniz.
Sitenizde Prosopo Procaptcha kullanıldığını fark ederseniz, bir sonraki adım özelliklerini ve çalışma şeklini daha ayrıntılı incelemek olacaktır. Yine bu makalede, Prosopo Procaptcha sisteminin entegrasyonuna ilişkin kılavuzu da bulabilir ve böylece sitenizde nasıl çalıştığını tamamen anlayabilirsiniz. Bu da yalnızca mevcut korumayı anlamanıza değil, aynı zamanda bakımını doğru şekilde planlamanıza da yardımcı olur.
Prosopo Procaptcha içeren formları test ederken, captchanın düzgün çalıştığını ve doğru entegre edildiğini doğrulamanız gerekir.
Sitenize yerleştirilen captchayı manuel olarak test edebilirsiniz.
Otomatik çözüm için CapMonster Cloud gibi araçlar kullanabilirsiniz. Captcha parametrelerini alır, kendi sunucularında işler ve hazır bir token döndürür. Bu tokenı forma ekleyerek kullanıcı müdahalesi olmadan doğrulamayı geçebilirsiniz.
CapMonster Cloud API ile çalışma genellikle şu adımlardan oluşur:
type - ProsopoTask
websiteURL - Captcha sayfasının tam URL’si;
websiteKey - Sayfada bulunan siteKey parametresinin değeri.
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) {
// Tokenin gönderileceği form URL’si veya endpoint
const formURL = "https://example..com/en/your-form-endpoint";
// Form verisi örneği
const formData = {
email: "example@example.com",
password: "yourpassword",
"procaptcha-response": token // Procaptcha tokeni
};
try {
const response = await fetch(formURL, {
method: "POST",
headers: {
"Content-Type": "application/json", // или 'application/x-www-form-urlencoded' siteye bağlı olarak
},
body: JSON.stringify(formData),
});
const result = await response.text(); // veya sunucu JSON döndürüyorsa response.json()
console.log("Server response:", result);
} catch (err) {
console.error("Error sending token:", err);
}
}
// Ana fonksiyon
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);
// Tokeni siteye gönderme
await sendTokenToSite(result.solution); // result.solution Procaptcha tokenini içerir
}
solveAndSend().catch(console.error);
1. Anahtarları alın (sitekey ve secret key)
2. Alan adınızı ekleyin
3. Procaptcha scriptini bağlayın
Tag’i <head> içine yerleştirin
<script type="module" src="https://js.prosopo.io/js/procaptcha.bundle.js" async defer></script>>4. Seçenek 1: Implicit rendering (otomatik render) — DAHA KOLAY
Captcha’nın otomatik olarak görüneceği bir container ekleyin:
<div class="procaptcha" data-sitekey="your_site_key"></div>Genellikle formun içine yerleştirilir.
<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>Başarılı doğrulama sonrası gizli bir parametre eklenecek:
5. Seçenek 2: Explicit rendering (manuel render) — DAHA FAZLA KONTROL
<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. Captcha tipini ayarlama (opsiyonel)
Açıkça seçilebilir:
Örnek:
<div class="procaptcha"
data-sitekey="your_site_key"
data-captcha-type="pow">
</div>7. Zorunlu adım: Sunucuda token doğrulama
Captcha renderlandıktan sonra sunucu cevabı doğrulamak zorundadır. Doğrulama API üzerinden yapılır:
https://api.prosopo.io/siteverifyİstek içeriği:
{
"secret": "your_secret_key",
"token": "PROCAPTCHA-RESPONSE"
}8. PHP ile sunucu doğrulaması
<?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;
}
?>Başarılı doğrulama ne demektir?
Eğer Procaptcha sunucusu dönerse:
{
"verified": true
}— captcha geçtiyse, korumalı işlemi (örn. kullanıcı kaydı) gerçekleştirebilirsiniz.
Kodu üzerinde erişiminiz olmayan, ancak üzerinde zaten bir captcha veya başka bir koruma sistemi kurulmuş bir site devraldıysanız, sorun değil! Hangi teknolojinin kullanıldığını tespit etmek oldukça kolaydır. Çalışmanın düzgün olup olmadığını kontrol etmek için ise, izole bir test ortamında CapMonster Cloud tanıma servisinden yararlanarak, jeton işleme mekanizmasının ve doğrulama mantığının doğru şekilde çalıştığından emin olabilirsiniz.
Prosopo Procaptcha söz konusu olduğunda, sistemi tanımlamak, davranışını incelemek ve korumanın düzgün çalıştığını doğrulamak yeterlidir. Bu yazıda, Prosopo Procaptcha nasıl tespit edilir ve entegrasyonu ya da yeniden yapılandırılması için talimatların nerede bulunabileceği gösterdik; böylece korumayı güvenle sürdürebilir ve çalışmasını kontrol altında tutabilirsiniz.