Comparisons

Cloudflare Bot Yönetimi ve Turnstile: Farkı Anlamak

Bir isteğiniz Cloudflare'e takıldığında ilk cevaplamanız gereken soru şudur: karşınızdaki bir Turnstile widget'ı mı, yoksa Bot Yönetimi'nin ağ düzeyindeki savunması mı? İkisi tamamen ayrı ürünlerdir ve otomasyon açısından farklı yaklaşımlar ister. Turnstile, ücretsiz ve bağımsız bir CAPTCHA widget'ıdır; tek bir form gönderimini korur ve cf-turnstile-response token'ı üretir. Bot Yönetimi ise Cloudflare Enterprise planına dahil, WAF kurallarını, hız sınırlamayı ve davranış analizini birleştiren ağ düzeyinde bir platformdur; her isteği tek tek puanlar.

Türkiye'deki bir otomasyon geliştiricisi için bu ayrım somut bir fark yaratır: Cloudflare arkasındaki bir e-ticaret sitesinde ödeme akışını QA ederken çıkan "Bir dakika lütfen..." sayfasının Turnstile mı yoksa Bot Yönetimi doğrulaması mı gerektirdiğini, doğru aracı seçmeden önce bilmeniz gerekir.


Önce teşhis: hangi Cloudflare ürünü karşınızda?

Otomasyonun ilk adımı doğru teşhistir; çözüm yöntemini ancak hangi ürünle karşılaştığınızı bilerek seçebilirsiniz. Sayfa kaynağındaki sinyaller hangi ürünün devrede olduğunu gösterir:

Senaryo Olası ürün Nasıl tanınır
5 saniyelik "Tarayıcınız kontrol ediliyor" sayfası Bot Yönetimi (JS doğrulaması) Sayfa kaynağında cf-chl-QA tanılama, jschl_vc
Bir formdaki Turnstile widget'ı Turnstile (bağımsız) cf-turnstile sınıfı, challenges.cloudflare.com/turnstile
Cloudflare hata sayfasıyla 403 Bot Yönetimi (sert engelleme) cf-ray başlığı, Cloudflare hata şablonu
Cloudflare sayfasında etkileşimli onay kutusu Yönetilen Doğrulama (Bot Yönetimi) challenges.cloudflare.com alan adı
Görünür doğrulama yok ama çerezler ayarlanmış Bot Yönetimi (geçildi) qa_session_cookie çerezi

Aşağıda her iki ürünü de ayrıntılandırıyoruz.


Bot Yönetimi ve Turnstile: temel farklar

İki ürünü önemli boyutlarda karşılaştıralım:

Özellik Bot Yönetimi Turnstile
Nedir Kurumsal bot savunma platformu Ücretsiz CAPTCHA widget'ı
Fiyatlandırma Cloudflare Enterprise planına dahil ($$$) Tüm planlarda ücretsiz
Dağıtım Ağ düzeyinde (Cloudflare proxy) JavaScript widget'ı (sayfaya gömülür)
Cloudflare DNS gerekir mi Evet Hayır (herhangi bir siteye eklenebilir)
Görünür doğrulama Bazen (yönetilen doğrulama) Nadiren (çoğunlukla görünmez)
Kapsam Etki alanına gelen tüm istekler Belirli sayfa eylemleri (form gönderimi vb.)
Bot puanı 1–99 (istek başına) Geçti/kaldı (doğrulama başına)
WAF entegrasyonu Evet (kurallar bot puanına dayanır) Hayır
JavaScript doğrulaması Evet (5 saniyelik bekleme sayfası) Evet (arka planda iş kanıtı)
Hız sınırlama Evet Hayır
CaptchaAI desteği Turnstile / doğrulama akışı yöntemleriyle Evet (yüksek başarı oranı)

Cloudflare Bot Yönetimi: ağ düzeyinde savunma

Bot Yönetimi, Cloudflare Enterprise planının parçasıdır ve ağ düzeyinde çalışır; her istek kaynak sunucuya ulaşmadan önce değerlendirilir.

Otomasyon neyle karşılaşır?

Bir site Bot Yönetimini kullandığında otomatik istekleriniz şunlarla karşılaşabilir:

  1. Doğrudan engelleme (403) — Bot puanı çok düşük; WAF kuralı isteği engeller.
  2. JavaScript doğrulama sayfası — 5 saniyelik "Tarayıcınız kontrol ediliyor" sayfası.
  3. Yönetilen doğrulama — Turnstile widget'ı veya JS doğrulaması.
  4. Görünmez onay — İsteğe izin verilir (bot puanı yeterince yüksek).

Bot Yönetimi'nin bileşenleri

Platform, birbirini tamamlayan şu bileşenlerden oluşur:

  • Bot Puanı — her istek için ML tabanlı puan.
  • Yönetilen Doğrulama (Managed Challenge) — JS doğrulaması veya Turnstile gösterir.
  • Super Bot Fight Mode — düşük seviyeli planlar için basitleştirilmiş mod.
  • Bot Analitiği — bot ve insan trafiğini gösteren kontrol paneli.
  • WAF Özel Kuralları — bot puanı eşiklerinde tetiklenen kurallar.
  • Hız Sınırlama — IP/oturum başına istek hızı eşikleri.
  • JavaScript Algılama — headless tarayıcı ve otomasyon tespiti.

Bir isteği nasıl puanlar?

Uçtaki motor her isteğe 1–99 arası bir puan verir; WAF kuralları kararı bu puana göre alır:

Request arrives at Cloudflare edge
    ↓
Bot Management engine evaluates:
  ├─ Machine learning model (behavioral test profil yapılandırması)
  ├─ Heuristics (known bot patterns)
  ├─ JavaScript fingerprinting (if JS challenge triggered)
  ├─ JA3/JA4 TLS test profil yapılandırması
  ├─ HTTP header analysis
  └─ IP reputation (Cloudflare sees ~20% of internet traffic)
    ↓
Bot score assigned: 1 (definitely bot) to 99 (definitely human)
    ↓
WAF rules act on the score:

  - Score > 50 → Allow
  - Score 30-50 → Managed challenge
  - Score < 30 → Block or JavaScript challenge

Cloudflare Turnstile: ücretsiz CAPTCHA widget'ı

Turnstile, geleneksel CAPTCHA'ların yerini alan bağımsız bir widget'tır. Bot Yönetiminden bağımsız çalışır ve herhangi bir web sitesinde kullanılabilir.

Turnstile widget modları

Widget üç moddan biriyle çalışır:

  • Yönetilen (Managed) — görünmez ve etkileşimli mod arasında karar verir; varsayılan moddur.
  • Etkileşimsiz — her zaman görünmezdir (yalnızca iş kanıtı); düşük sürtünmeli formlar içindir.
  • Görünmez — sayfa yüklenirken arka planda çalışır.

Turnstile arka planda nasıl çalışır?

Widget, sayfa yüklenirken arka plan kontrolleri yürütür ve cf-turnstile-response token'ını üretir:

Page loads Turnstile widget
    ↓
Widget runs background checks:
  ├─ Browser proof-of-work challenge (cryptographic puzzle)
  ├─ Private Access Token (Apple devices)
  ├─ Browser environment validation
  └─ Cloudflare threat intelligence
    ↓
Result: cf-turnstile-response token generated
    ↓
Token submitted with form data
    ↓
Server validates token via Cloudflare API (siteverify)

Turnstile'ı bir sayfaya ekleme

<!-- Simple Turnstile integration -->
<div class="cf-turnstile" data-sitekey="0x4AAAAAAAC3DHQhMMQ_Rxrg"></div>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>

Her ikisini CaptchaAI ile çözme

Çözüm yöntemi, karşınızdaki ürüne göre değişir:

  • Bağımsız Turnstileturnstile yöntemiyle doğrudan çözülür.
  • Bot Yönetimi'nin CAPTCHA bileşeni — genellikle Turnstile'dır; aynı yöntemle çözülür.
  • Cloudflare doğrulama akışı sayfasıcloudflare_challenge yöntemine gider.

Turnstile token'ını çözme

Turnstile, turnstile yöntemiyle yüksek başarı oranıyla çözülür:

import requests
import time

API_KEY = "YOUR_API_KEY"

submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "turnstile",
    "sitekey": "0x4AAAAAAAC3DHQhMMQ_Rxrg",
    "pageurl": "https://example.com/signup",
    "json": 1,
})

task_id = submit.json()["request"]

for _ in range(60):
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": API_KEY,
        "action": "get",
        "id": task_id,
        "json": 1,
    }).json()

    if result.get("status") == 1:
        token = result["request"]
        print(f"Turnstile token: {token[:50]}...")
        break

Bot Yönetimi doğrulamalarını çözme

Bot Yönetimi birden fazla savunma katmanı kullanır; CAPTCHA bileşeni genellikle Turnstile olarak render edilen bir Yönetilen Doğrulama'dır:

# Bot Management flow for automation:

# 1. Make initial request
response = requests.get("https://protected-site.com/api/data")

# 2. Check if challenged
if response.status_code == 403:
    # Hard block — need to adjust headers, proxy, or approach
    pass
elif "challenge" in response.text.lower() or response.status_code == 503:
    # JavaScript challenge or managed challenge
    # If it contains a Turnstile widget, solve it:
    if "cf-turnstile" in response.text or "challenges.cloudflare.com" in response.text:
        # Extract sitekey and solve via CaptchaAI
        sitekey = extract_turnstile_sitekey(response.text)
        token = solve_turnstile(sitekey, "https://protected-site.com/api/data")

Cloudflare doğrulama akışı sayfası (Turnstile değil)

"Tarayıcınız kontrol ediliyor" JavaScript doğrulama sayfası bir Turnstile widget'ı DEĞİLDİR. CaptchaAI bunu cloudflare_challenge yöntemiyle çözer:

submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "cloudflare_challenge",
    "sitekey": "managed",
    "pageurl": "https://protected-site.com/login",
    "json": 1,
})

Koruma türünü kod ile tespit etme

Teşhisi otomatikleştirmek için, yanıt kodunu ve sayfa kaynağını sınıflandıran küçük bir fonksiyon yeterlidir:

import requests

def identify_cloudflare_protection(url):
    """Identify which Cloudflare protection a URL uses."""
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                      "AppleWebKit/537.36 Chrome/120.0.0.0",
    }

    response = requests.get(url, headers=headers, timeout=15, allow_redirects=False)
    html = response.text

    result = {
        "cloudflare_protected": "cf-ray" in response.headers.get("cf-ray", "")
                                or "cloudflare" in response.headers.get("server", "").lower(),
        "bot_management_challenge": False,
        "turnstile_widget": False,
        "hard_block": False,
        "passed": False,
    }

    if response.status_code == 403:
        result["hard_block"] = True
    elif response.status_code == 503 and "jschl" in html:
        result["bot_management_challenge"] = True
    elif "cf-turnstile" in html:
        result["turnstile_widget"] = True
    elif response.status_code == 200:
        result["passed"] = True

    return result

Not: Kazınan veriler kişisel veri içeriyorsa iş KVKK kapsamına girer; CAPTCHA otomasyonunu yalnızca yetkili olduğunuz QA ve veri toplama akışlarında kullanın.


Sık sorulan sorular

Bir sayfada Turnstile mı yoksa Cloudflare doğrulama akışı mı var, nasıl ayırt ederim?

Sayfa kaynağına bakın. cf-turnstile sınıfını veya challenges.cloudflare.com/turnstile betiğini görüyorsanız bu bir Turnstile widget'ıdır (turnstile yöntemi). jschl_vc ya da 5 saniyelik bekleme sayfası görüyorsanız bu Cloudflare doğrulama akışıdır (cloudflare_challenge yöntemi).

Turnstile gerçekten ücretsiz mi?

Evet. Turnstile, tüm Cloudflare planlarında ücretsizdir ve Cloudflare DNS gerektirmez; herhangi bir sayfaya eklenebilir. Bot Yönetimi ise ayrı bir üründür ve Enterprise planının parçasıdır.

Bot Yönetimi olan bir siteyi otomatikleştirmek için tek başına CAPTCHA çözmek yeterli mi?

Genelde hayır. Bot Yönetimi her isteği ağ düzeyinde çok sayıda sinyalle değerlendirir; tutarlı sonuç için CAPTCHA'nın yanında şunlar da gerekir:

  • uygun HTTP başlıkları,
  • doğru TLS yapılandırması,
  • IP yönetimi.

Turnstile ise yalnızca form gönderimlerini korur ve çözmesi daha basittir.

CaptchaAI, Cloudflare korumalarından hangilerini çözer?

CaptchaAI, Turnstile widget'larını (turnstile yöntemi, yüksek başarı oranı) ve Cloudflare doğrulama akışı sayfalarını (cloudflare_challenge yöntemi) çözer. Bot Yönetimi'nin ağ düzeyindeki 403 engellemesi kapsam dışındadır; bunun için uygun başlıklar ve proxy gerekir.

Turnstile çözümü ne kadar sürer?

Çözüm süresi ortama ve widget moduna göre değişir; sorgulama döngüsü sonucu birkaç saniyede bir kontrol eder ve token hazır olunca döner. Turnstile token'larının ömrü kısadır, bu yüzden token'ı hedef siteye gecikmeden gönderin.


Özet

  • Bot Yönetimi — her isteği ML puanlaması, WAF kuralları ve davranış analiziyle değerlendiren, Enterprise planına dahil ağ düzeyinde bir savunmadır.
  • Turnstile — kullanıcıyı tarayıcı iş kanıtıyla doğrulayan, herhangi bir sayfaya eklenebilen ücretsiz bir CAPTCHA widget'ıdır.
  • Otomasyonda — Turnstile, CaptchaAI ile doğrudan çözülür (yüksek başarı oranı); Bot Yönetimi ise CAPTCHA bileşeni için CaptchaAI'ye ek olarak tarayıcı simülasyonu, başlıklar ve IP yönetimi gerektirir. Önce korumayı doğru tanımlayın, ardından uygun yöntemi seçin.

İlgili Makaleler

Bu makale için yorumlar devre dışı bırakılmıştır.