Teknik Açıklamalar

Cloudflare Mücadelesi Nasıl Çalışır?

Cloudflare, bir ziyaretçinin bot olduğundan şüphelendiğinde, "Erişmeden önce tarayıcınız kontrol ediliyor..." veya "İnsan olduğunuzu doğrulayın" mesajını içeren tam sayfa bir geçiş reklamı gösterir. Buna Cloudflare doğrulama akışı denir; sayfaya gömülü bir widget olan Turnstile ile karıştırılmamalıdır.

Bu sorgulama, tarayıcı doğrulamayı geçene kadar sayfanın tamamına erişimi engeller. Cloudflare, başarılı olduktan sonra sonraki isteklere erişim sağlayan bir qa_session_cookie çerezi ayarlar.


Mücadele akışı nasıl çalışır?

Request → Cloudflare proxy → Suspicious? → Challenge page
                                              ↓
                                    Browser verification
                                              ↓
                                    qa_session_cookie cookie set
                                              ↓
                                    Original page loads
  1. İstek ele geçirildi — Cloudflare'in ters proxy'si gelen isteği değerlendirir
  2. Risk değerlendirmesi — IP itibarı, istek başlıkları, TLS test profil yapılandırması ve davranış analiz edilir
  3. Meydan okuma sunuldu — Şüpheliyse amaçlanan yanıtın yerine bir sorgulama sayfası gelir
  4. Tarayıcı doğrulaması — Tarayıcıda yürütülen JavaScript sorgulamaları
  5. Çerez seti — Başarı durumunda, qa_session_cookie çerezi yapılandırılabilir bir TTL ile ayarlanır
  6. Erişim izni verildi — Tarayıcı orijinal sayfa içeriğini yeniden yükler ve alır

Cloudflare doğrulama akışı'yi tetikleyen şey nedir?

Tetikleyici Açıklama
Veri Merkezi IP'si Bilinen barındırma sağlayıcılarından talep
Eksik başlıklar Eksik veya olağandışı HTTP başlıkları
TLS test profil yapılandırması JA3/JA4 test profil yapılandırması bilinen bot imzalarıyla eşleşiyor
Yüksek talep oranı Aynı IP'den çok fazla istek
Güvenlik düzeyi ayarı Site sahibi, meydan okuma eşiğini yüksek olarak belirledi
Ülke bazlı kurallar Coğrafi engelleme veya meydan okuma kuralları
Bot puanı Cloudflare'in ML bot puanı çok düşük
Bilinen tehdit IP, tehdit istihbaratı listelerinde görünüyor

Mücadeleyi geçtikten sonra tarayıcı şunları alır:

qa_session_cookie=abc123...; path=/; domain=.example.com; secure; HttpOnly; SameSite=None

Temel özellikler:

  • Süre: 15 dakika ila 24 saat (site sahibi tarafından yapılandırılabilir)
  • Kapsam: Belirli bir alana bağlı
  • Bağlayıcı: Doğrulama sırasında kullanılan kullanıcı aracısına ve IP adresine bağlıdır
  • Kullanım: Yeniden itirazı önlemek için sonraki tüm isteklere dahil edilmelidir

Önemli: qa_session_cookie çerezi, doğrulama sırasında kullanılan belirli Kullanıcı Aracısı ve IP adresine bağlıdır. Bunlardan herhangi birinin değiştirilmesi çerezi geçersiz kılacaktır.


Cloudflare doğrulama akışı vs Turnstile vs JS Mücadelesi

Özellik CF Mücadelesi Turnstile JS Mücadelesi
Tür Tam sayfa geçiş reklamı Sayfa içi widget Sessiz kontrol
Kullanıcı görür "Tarayıcınızı kontrol etme" sayfası Onay kutusu veya hiçbir şey Hiçbir şey
Sayfa erişimini engeller Evet Hayır Kısaca
qa_session_cookie'ı ayarlar Evet Bazen Evet
Çözmek için proxy gerektirir Evet Hayır N/A
Site Cloudflare CDN kullanıyor Gerekli İsteğe bağlı Gerekli

Cloudflare doğrulama akışı'yi CaptchaAI ile çözme

Cloudflare doğrulama akışı çözümü bir proxy gerektirir çünkü qa_session_cookie çerezi IP adresine bağlıdır.

Python

import requests
import time

API_KEY = "YOUR_API_KEY"

# Submit task — proxy is REQUIRED
response = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY,
    "method": "cloudflare_challenge",
    "pageurl": "https://example.com/protected-page",
    "proxy": "username:password@proxy.example.com:8080",
    "proxytype": "HTTP",
    "json": 1
})

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

# Poll for result
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:
        solution = result["request"]
        # solution contains qa_session_cookie cookie + user_agent
        print(f"qa_session_cookie: {solution}")
        break

Node.js

const axios = require('axios');

async function solveCloudflareChallenge(pageurl, proxy) {
  const { data } = await axios.get('https://ocr.captchaai.com/in.php', {
    params: {
      key: 'YOUR_API_KEY',
      method: 'cloudflare_challenge',
      pageurl,
      proxy,
      proxytype: 'HTTP',
      json: 1
    }
  });

  const taskId = data.request;

  for (let i = 0; i < 60; i++) {
    await new Promise(r => setTimeout(r, 5000));
    const res = await axios.get('https://ocr.captchaai.com/res.php', {
      params: { key: 'YOUR_API_KEY', action: 'get', id: taskId, json: 1 }
    });
    if (res.data.status === 1) return res.data.request;
  }
  throw new Error('Timeout');
}
# After getting the solution
qa_session_cookie = solution["qa_session_cookie"]
user_agent = solution["user_agent"]

# Use the SAME proxy and user agent for subsequent requests
session = requests.Session()
session.cookies.set("qa_session_cookie", qa_session_cookie, domain=".example.com")
session.headers["User-Agent"] = user_agent
session.proxies = {"https": "http://username:password@proxy.example.com:8080"}

# Now access the protected page
page = session.get("https://example.com/protected-page")
print(f"Status: {page.status_code}")

Proxy neden gereklidir?

qa_session_cookie çerezi kriptografik olarak şunlara bağlıdır:

  1. IP adresi — Çözümün kullanacağınız IP ile aynı olması gerekir
  2. Kullanıcı Aracısı — Çözüm kullanıcı aracısının isteklerinizle eşleşmesi gerekir
  3. TLS test profil yapılandırması — Bazı yapılandırmalar TLS özelliklerini de kontrol eder

Bunlardan herhangi biri çözüm ile sonraki istekleriniz arasında farklılık gösterirse çerez geçersizdir.


SSS

Site sahipleri süreyi genellikle 15 dakika ila 24 saat arasında yapılandırır. Süre dolduktan sonra yeni bir mücadelenin çözülmesi gerekir.

CF_clearance'ı farklı IP'lerde yeniden kullanabilir miyim?

Hayır. Çerez, doğrulama sırasında kullanılan IP'ye bağlıdır. IP'leri değiştirmek yeni bir çözüm gerektirir.

Cloudflare doğrulama akışı ve Turnstile arasındaki fark nedir?

Cloudflare doğrulama akışı, sayfa erişimini engelleyen tam sayfa bir geçiş reklamıdır. Turnstile, reCAPTCHA'ya benzer şekilde sayfanın içine yerleştirilmiş bir widget'tır. Mücadele, sitenin Cloudflare'i proxy olarak kullanmasını gerektirir; Turnstile her türlü sitede kullanılabilir.

Çözüm ne kadar sürüyor?

Cloudflare doğrulama akışı çözümlemesi, tam tarayıcı doğrulaması nedeniyle Turnstile veya reCAPTCHA'dan daha uzun, 20-60 saniye sürer.

Sayfada hem Cloudflare hem de reCAPTCHA varsa ne olur?

Sayfaya erişmek için önce Cloudflare doğrulama akışı'yi çözün, ardından yüklenen sayfadaki reCAPTCHA'yı çözün.


İlgili kılavuzlar

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