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:
- Doğrudan engelleme (403) — Bot puanı çok düşük; WAF kuralı isteği engeller.
- JavaScript doğrulama sayfası — 5 saniyelik "Tarayıcınız kontrol ediliyor" sayfası.
- Yönetilen doğrulama — Turnstile widget'ı veya JS doğrulaması.
- 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 Turnstile —
turnstileyö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_challengeyö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.