Hızlı Başlangıç

Bir dakikadan kısa sürede çalışır duruma gelin.

1Bir Site Oluşturun

BenEgeDeniz ID'niz ile giriş yapın ve panelde yeni bir site oluşturarak site anahtarınızı ve gizli anahtarınızı alın.

2Widget'ı Ekleyin

Forge scriptini dahil edin ve widget div'ini formunuzun içine yerleştirin.

<script src="https://forge.benegedeniz.com/widget/forge.js" async defer></script>

<form action="/submit" method="POST">
    <div class="forge-captcha" data-sitekey="YOUR_SITEKEY"></div>
    <button type="submit">Submit</button>
</form>
3Sunucu Tarafında Doğrulayın

Form gönderildiğinde, token'ı gizli anahtarınızla doğrulama API'mize gönderin.

İstemci Tarafı

Otomatik Oluşturma

Widget, forge-captcha sınıfına sahip tüm elementlerde otomatik olarak oluşturulur.

<div class="forge-captcha" data-sitekey="YOUR_SITEKEY"></div>
JavaScript API

Programatik kontrol için ForgeCaptcha global nesnesini kullanın.

// Programmatic rendering
const widgetId = ForgeCaptcha.render('#my-container', {
    sitekey: 'YOUR_SITEKEY',
    callback: function(token) {
        console.log('Verified:', token);
    },
    'error-callback': function() {
        console.log('Challenge failed');
    }
});

// Get the response token
const token = ForgeCaptcha.getResponse(widgetId);

// Reset the widget
ForgeCaptcha.reset(widgetId);
Data Özellikleri
Özellik Tip Açıklama
data-sitekeystringSitenizin genel anahtarı (zorunlu).
data-callbackstringBaşarılı olduğunda token ile çağrılan global fonksiyon adı.
data-error-callbackstringHata durumunda çağrılan global fonksiyon adı.
data-themestring"light", "dark" veya "auto" (varsayılan: otomatik algılama).

Drop-In Entegrasyon

BenEgeDeniz Forge, diğer popüler captcha servisleri için %100 uyumlu bir Drop-In alternatifi olarak çalışır. Aşağıdaki servislerden herhangi birini kullanan bir sisteminiz varsa, HTML elementinizi veya sunucu doğrulama değişkenlerinizi değiştirmeden geçiş yapabilirsiniz.

reCaptcha
<div class="g-recaptcha">
Turnstile
<div class="cf-turnstile">
hCaptcha
<div class="h-captcha">

Sunucu Tarafı

Widget bir token oluşturduktan sonra, isteği işlemeden önce sunucunuzda doğrulayın.

PHP
$response = file_get_contents('https://forge.benegedeniz.com/api/siteverify', false,
    stream_context_create(['http' => [
        'method' => 'POST',
        'header' => 'Content-Type: application/json',
        'content' => json_encode([
            'secret' => 'YOUR_SECRET_KEY',
            'response' => $_POST['forge-captcha-response'],
            'remoteip' => $_SERVER['REMOTE_ADDR'],
        ]),
    ]])
);

$result = json_decode($response, true);
if ($result['success']) {
    // User verified - process the form
}
Node.js
const res = await fetch('https://forge.benegedeniz.com/api/siteverify', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
        secret: process.env.FORGE_SECRET_KEY,
        response: req.body['forge-captcha-response'],
    }),
});

const data = await res.json();
if (data.success) {
    // User verified
}
cURL
curl -X POST https://forge.benegedeniz.com/api/siteverify \
  -H "Content-Type: application/json" \
  -d '{"secret":"YOUR_SECRET","response":"TOKEN_FROM_WIDGET"}'

API Referansı

POST /api/challenge

Yeni bir PoW meydan okuması talep edin. Widget tarafından dahili olarak kullanılır.

İstek Gövdesi
{ "sitekey": "your-site-uuid" }
Yanıt
{
    "success": true,
    "challenge_id": "uuid",
    "salt": "hex-string",
    "difficulty": 20,
    "algorithm": "SHA-256",
    "expires_at": "2025-01-01T00:00:00Z"
}
POST /api/siteverify

Bir captcha token'ını doğrulayın. Gizli anahtarınızla sunucunuzdan çağırın.

İstek Gövdesi
{
    "secret": "your-secret-key",
    "response": "token-from-widget",
    "remoteip": "optional-client-ip"
}
Yanıt
{
    "success": true,
    "challenge_ts": "2025-01-01T00:00:00+00:00",
    "hostname": "example.com",
    "difficulty": 20,
    "is_interactive": true
}
Güvenlik Notu: Yüksek güvenlikli uç noktalar için, dönen zorluk seviyesinin (difficulty) sayfa kuralı gereksinimlerinizi karşıladığını doğrulayarak token sahteciliğini önleyin.

Yapılandırma

Panelden sitenizin zorluk seviyesini yapılandırın.

Ayar Varsayılan Aralık Açıklama
Zorluk 20 5–28 SHA-256 hash'inde gereken ön sıfır bit sayısı. Yüksek değerler = daha zor meydan okumalar.
Zorluk Rehberi
  • 5–14: Çok hafif koruma (~10ms). Düşük riskli formlar için uygun.
  • 15–20: Dengeli koruma (~200-500ms). Çoğu kullanım için önerilir.
  • 21–28: Ağır koruma (~2-30s). Yüksek güvenlikli veya hız sınırlı uç noktalar için.

Sayfa Kuralları

Sayfa Kuralları, sitenizdeki farklı sayfa veya URL desenleri için özel doğrulama davranışları (Zorluk Seviyesi, Görünmez Mod, Otomatik Doğrulama) tanımlamanızı sağlar.

Eşleşme Tipleri
Basit Eşleşme (Simple)

Doğrudan yol (path) eşleşmesidir. /login.php veya joker karakteri kullanarak /admin/* şeklinde eşleşmeler yapabilirsiniz.

Düzenli İfade (Regex)

Tam URL üzerinden daha karmaşık eşleşmeler yapmanızı sağlar. (ör. \/dashboard\.php\?action=delete.*)

Kuralların Değerlendirilmesi

Kurallar, panelinizde belirlediğiniz öncelik sırasına göre (yukarıdan aşağıya) değerlendirilir. Ziyaret edilen URL ile eşleşen ilk kural uygulanır. Eğer hiçbir kural eşleşmezse, sitenizin genel ayarları geçerli olur.

Gelişmiş Güvenlik ve Tehdit İstihbaratı

BenEgeDeniz Forge, formlarınızı gelişmiş botlara ve başsız (headless) tarayıcılara karşı korumak için dinamik tehdit istihbaratı kullanır.

Güven Skorları ve Telemetri

Widget, fare hareketlerini, dokunmatik basınç varyansını ve tuş vuruşlarını güvenli bir şekilde değerlendirerek bir "etkileşim entropisi" hesaplar. Ayrıca pasif ortam sinyallerini (WebGL oluşturucu profilleri, cihaz belleği, webdriver bayrakları) toplar. Otomatik komut dosyaları ve başsız tarayıcılar bu kontrollerde başarısız olur ve Forge onların güven puanını sessizce düşürerek kriptografik zorluğu katlanarak artırır.

Bot Koruma Seviyeleri

Güvenlik motorunun katı kurallarını Bot Koruma Seviyeleri (Düşük, Orta, Yüksek) aracılığıyla yapılandırabilirsiniz. Daha yüksek seviyeler, daha sıkı güven skoru sınırları uygular ve şüpheli IP veya tarayıcı anormallikleri içeren istekleri anında reddeder.

Moda Duyarlı Koruma

Güvenlik motoru, yapılandırmanızın tamamen farkındadır. Bir doğrulama Görünmez (Invisible) veya Otomatik (Auto-Verify) moda ayarlanmışsa, aktif etkileşim cezaları akıllıca devre dışı bırakılır ve gerçek kullanıcılar cezalandırılmaz. Bunun yerine sistem, botları yakalamak için sıkı pasif ortam sinyallerine, Challenge-IP (İstek-Çözüm) eşleştirmesine ve PoW zamanlama sınırlarına (timing floors) güvenir.

Tehdit Günlükleme (Log)

Engellenen tüm saldırılar, kaba kuvvet (brute-force) denemeleri, alan adı sahtekarlıkları (domain spoofing), IP uyuşmazlıkları ve PoW zamanlama anomalileri gerçek zamanlı olarak kaydedilir. Bu metrikleri izleyebilir ve her bir saldırının ham verilerini site kontrol panelinizin Güvenlik sekmesinden inceleyebilirsiniz.