Gizliliğe saygılı, reCAPTCHA'ya alternatif captcha. Verisi senin sunucunda kalır, üçüncü tarafa istek gitmez. Aşağıda kendi projelerine 3 adımda nasıl ekleyeceğin var.
Panelde bir site (property) oluşturup sitekey'ini aşağıya yapıştır, widget'ı burada dene.
(Property ayarlarında bu alan adını — captcha.bahadirduzcan.com.tr — ve localhost'u izinli alanlara eklemeyi unutma.)
<!-- widget betiği: sayfada bir kez --> <script defer src="https://cdn-captcha.bahadirduzcan.com.tr/widget/js/privatecaptcha.js"></script> <!-- formun içine: sitekey senin, puzzle-endpoint SENİN api'ne bakmalı --> <form method="POST" action="/gonder"> <div class="private-captcha" data-sitekey="SENIN_SITEKEY" data-puzzle-endpoint="https://api-captcha.bahadirduzcan.com.tr/puzzle"></div> <button type="submit">Gönder</button> </form>
<input name="private-captcha-solution" value="...">. Bu değeri sunucuda doğrularsın.Formdan gelen private-captcha-solution değerini, gizli API anahtarınla
/verify'a POST et. Yanıtta success===true && code===0 ise geçerli.
// Express örneği const solution = req.body["private-captcha-solution"]; const r = await fetch("https://api-captcha.bahadirduzcan.com.tr/verify", { method: "POST", headers: { "X-Api-Key": process.env.PC_API_KEY }, body: solution // ham çözüm string'i, gövdeye direkt }); const data = await r.json(); if (data.success && data.code === 0) { // ✅ insan — formu işle } else { // ❌ reddet }
// PHP örneği $solution = $_POST["private-captcha-solution"]; $ch = curl_init("https://api-captcha.bahadirduzcan.com.tr/verify"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("PC_API_KEY")], CURLOPT_POSTFIELDS => $solution, CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true); if ($res["success"] && $res["code"] === 0) { /* ✅ */ }
# Python (requests) import requests, os solution = request.form["private-captcha-solution"] r = requests.post( "https://api-captcha.bahadirduzcan.com.tr/verify", headers={"X-Api-Key": os.environ["PC_API_KEY"]}, data=solution, ) res = r.json() if res["success"] and res["code"] == 0: ... # ✅ insan
curl -X POST https://api-captcha.bahadirduzcan.com.tr/verify \ -H "X-Api-Key: SENIN_API_ANAHTARIN" \ --data "PRIVATE_CAPTCHA_SOLUTION_DEGERI" # yanıt: # {"success": true, "code": 0, "timestamp": "...", "origin": "site.com"}
Private Captcha, Google reCAPTCHA uyumlu bir /siteverify ucu da sunar
(secret + response parametreleri). Mevcut reCAPTCHA kodun varsa sadece
endpoint'i https://api-captcha.bahadirduzcan.com.tr/siteverify yapıp secret'ı API anahtarınla değiştirmen yeter.