Cloudflare Challenge
ve CapMonster Cloud

Captcha çözümü, siteye kurulum ve test.

Cloudflare Challenge çözümünün fiyatlandırması

CAPTCHA
Fiyat (USD)
$ 1.30
1000 jeton
$ 1.30
1000 jeton
Captcha veya başka bir koruma katmanı olan bir site devraldınız ama kaynak koda erişemiyor musunuz? O zaman hangi çözümün kurulu olduğunu, doğru ayarlanıp ayarlanmadığını ve nasıl test edileceğini bilmek istersiniz.

Bu makalede tüm önemli sorulara cevap vermeye çalıştık. Bir problemi çözmeye başlamanın ilk adımı, hangi koruma sisteminin kullanıldığını belirlemektir. Bunun için, görsel örneklerin ve neyle karşı karşıya olduğunuzu hızlıca anlamanıza yardımcı olabilecek temel işaretlerin yer aldığı popüler captcha ve anti-bot koruma sistemleri listesine başvurabilirsiniz.

Sitenizde Cloudflare Challenge kullanıldığını fark ederseniz, bir sonraki adım özelliklerini ve çalışma şeklini daha ayrıntılı incelemek olacaktır. Yine bu makalede, Cloudflare Challenge sisteminin entegrasyonuna ilişkin kılavuzu da bulabilir ve böylece sitenizde nasıl çalıştığını tamamen anlayabilirsiniz. Bu da yalnızca mevcut korumayı anlamanıza değil, aynı zamanda bakımını doğru şekilde planlamanıza da yardımcı olur.

Cloudflare Challenge nedir
Cloudflare Challenge nedir
Cloudflare Challenge (veya Interstitial Challenge Pages), siteleri botlardan, spamden ve kötü niyetli trafikten korumak için Cloudflare tarafından geliştirilen bir doğrulama sistemidir. Cloudflare, bir isteğin gerçek bir ziyaretçiden gelmediğini düşündüğünde (örneğin şüpheli IP veya JavaScript eksikliği nedeniyle), bir Challenge gösterir — yani, insan olduğunuzu doğrulamak için tamamlamanız gereken bir 'meydan okuma'. Bu doğrulama türü Turnstile’dan farklıdır; kullanıcı önce “Just a moment…” ve “Verifying you are human. This may take a few seconds.” mesajını içeren bir ara sayfa görür.

CapMonster Cloud ile Cloudflare Challenge nasıl çözülür

Cloudflare Challenge ile korumayı test ederken, doğrulamanın doğru şekilde çalıştığından ve şüpheli trafiği doğru şekilde engellediğinden emin olmak önemlidir.
Sayfanızda kurulu challenge’i manuel olarak test edebilirsiniz:
  • Challenge’ın beklenildiği sayfayı gizli modda açın ve captcha’nın görüntülendiğinden emin olun.
  • Tarayıcıya yanlış cf_clearance çerezlerini koymayı deneyin (aşağıda daha fazla bilgi var) — sunucu hata vermelidir.
  • Captcha başarıyla çözüldükten sonra, sayfa kontrolsüz şekilde açılmalıdır.
Otomatik test ve captcha tanıma için CapMonster Cloud gibi özel servisleri kullanabilirsiniz — bu araç, captcha parametrelerini alır, sunucularında işler ve hazır çözümü döndürür. Bu çözüm (token veya çerez) form veya tarayıcıya eklenerek kullanıcı müdahalesi olmadan doğrulama geçilebilir.

CapMonster Cloud API ile çalışma genellikle şu adımlardan oluşur:

Görev oluşturmaGörev oluşturma
arrow
API isteği göndermeAPI isteği gönderme
arrow
Sonucu almaSonucu alma
arrow
cf_clearance eklemecf_clearance ekleme
arrow
Hazır kütüphanelerle Cloudflare Challenge tanıma
CapMonster Cloud, Python, JavaScript (Node.js) ve C# dillerinde kullanılabilecek hazır kütüphaneler sunar.
Python
JavaScript
C#
Challenge çözümü ve çerez ekleme
Node.js örneği: sayfanızda captcha çözüm döngüsünü tamamlar. Yaklaşımlar: HTML ve koruma sistemi parametrelerini almak için HTTP istekleri kullanmak, cevabı göndermek ve sonucu işlemek. Ya da otomasyon araçlarıyla (Playwright gibi) — sayfayı aç, doğrulamayı bekle, CapMonster Cloud üzerinden parametreleri gönder, sonucu al, çerezi tarayıcıya ekle (test için doğru veya yanlış veriler kullanılabilir) ve sonucu görüntüle.

  // npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium

import { chromium } from 'playwright';
import {
  CapMonsterCloudClientFactory,
  ClientOptions,
  TurnstileRequest
} from '@zennolab_com/capmonstercloud-client';

// Ayarlar — kendi değerlerinizle değiştirin
const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://www.example.com';
const SITE_KEY = 'xxxxx'; // Herhangi bir string gönderebilirsiniz
const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36';

// Proxy ayarları
const proxy = {
  proxyType: 'http',
  proxyAddress: '8.8.8.8',
  proxyPort: 8080,
  proxyLogin: 'proxyLogin',
  proxyPassword: 'proxyPassword'
};

async function main() {

  const cmcClient = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: API_KEY })
  );

  // Tarayıcı başlatılıyor
  const browser = await chromium.launch({
    headless: false,
    proxy: proxy.proxyAddress ? {
      server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
      username: proxy.proxyLogin,
      password: proxy.proxyPassword
    } : undefined
  });

  // Gerekli User-Agent ve pencere boyutuyla context oluştur (isteğe bağlı)
  const context = await browser.newContext({ userAgent: USER_AGENT, viewport: { width: 1280, height: 800 } });

  // Sayfa oluştur ve hedef URL’yi yükle
  const page = await context.newPage();
  const resp = await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
  console.log('İlk isteğin durumu:', resp?.status());

  // Sayfanın HTML’ini al ve CapMonster için Base64’e çevir
  const htmlBase64 = Buffer.from(await page.content(), 'utf-8').toString('base64');

  // cf_clearance almak için Turnstile görevi oluştur
  const solveResult = await cmcClient.Solve(new TurnstileRequest({
    websiteURL: TARGET_URL,
    websiteKey: SITE_KEY,
    cloudflareTaskType: 'cf_clearance',
    htmlPageBase64: htmlBase64,
    userAgent: USER_AGENT,
    proxy: proxy.proxyAddress ? proxy : undefined
  }));

  const cf_clearance = solveResult?.solution?.cf_clearance;
  if (!cf_clearance) {
    console.error('CapMonster’dan cf_clearance alınamadı:', solveResult);
    await browser.close();
    return;
  }
  console.log('cf_clearance alındı:', cf_clearance);

  // cf_clearance çerezini tarayıcı context’ine ekle
  await context.addCookies([{
    name: 'cf_clearance',
    value: cf_clearance,
    domain: '.' + new URL(TARGET_URL).hostname,
    path: '/',
    httpOnly: true,
    secure: true
  }]);
  console.log('cf_clearance çerezi başarıyla tarayıcıya eklendi.');

  // cf_clearance ile sayfayı tekrar aç
  const page2 = await context.newPage();
  const resp2 = await page2.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
  console.log('cf_clearance ayarlandıktan sonraki istek durumu:', resp2?.status());

  await browser.close();
  console.log('Script tamamlandı.');
}

main().catch(err => {
  console.error('Hata oluştu:', err);
  process.exit(1);
});
  
Cloudflare Challenge’ı sitenize bağlama
Captcha’nın sitenizdeki davranışını, doğrulama mantığını anlamak ve tekrar bağlamak veya yeniden yapılandırmak için bu bölümü öneriyoruz. Koruma kurulum sürecini açıklıyor ve tüm detayları hızlıca anlamanıza yardımcı oluyor.
1. Kaydolun veya hesabınıza giriş yapın ve alan adınızı Cloudflare’a bağlayın.
2. WAF kuralı üzerinden Challenge’ı etkinleştirin.
Şuraya gidin: Security → Custom Rules → Create rule
HowTo Connect image 1

Koşul örneği (tüm login sayfasını kontrol edin):
http.request.uri.path contains "/login"
3. Eylemi seçin:
Managed Challenge (önerilen) — sistem otomatik olarak hangi challenge’ı göstereceğine karar verir.
Gerekli diğer ayarları yapın ve Deploy’a tıklayın.
Doğrulamadan sonra kullanıcı bir cf_clearance çerezi alır; aynı cihaz ve tarayıcıda Challenge tekrar gösterilmez.
Background
Olası hatalar ve hata ayıklama
Bug Icon
Geçersiz domain veya kural ayarı
Challenge görünmüyor. Kuralın doğru URI, yol veya host’a bağlı olduğundan emin olun.
Bug Icon
Sayfa veya challenge yükleme süresi aşıldı
Tarayıcı veya istemci Cloudflare yanıtını beklemedi. Testlerde ve izlemede timeout sürelerini artırın.
Bug Icon
Tekrar kontrol veya süresi dolmuş cf_clearance
Ziyaretçi süresi dolmuş bir cf_clearance kullanıyorsa sistem tekrar Challenge gösterir.
Bug Icon
Challenge sonrası başka bir doğrulama
Challenge + özel kurallar aynı anda kullanılırsa döngüsel kontroller olabilir. Sorunu çözmek için Cloudflare önerilerini takip edin.
Korumanın dayanıklılığını test etme
Güvenlik ve optimizasyon önerileri
WAF kurallarını ve Managed/JS/Interactive Challenge ayarlarını risk seviyesine göre yapılandırın.
Güvenlik olaylarını ve Challenge geçiş durumlarını kaydedin, bloklama nedenlerini ve yanlış alarmları anlayın.
Şeffaflık ve uyumluluk için Challenge sayfalarında Cloudflare/site <span class="font-bold">Gizlilik Politikası</span> ve <span class="font-bold">Kullanım Koşulları</span> linkleri ekleyin.
Sonuç

Kodu üzerinde erişiminiz olmayan, ancak üzerinde zaten bir captcha veya başka bir koruma sistemi kurulmuş bir site devraldıysanız, sorun değil! Hangi teknolojinin kullanıldığını tespit etmek oldukça kolaydır. Çalışmanın düzgün olup olmadığını kontrol etmek için ise, izole bir test ortamında CapMonster Cloud tanıma servisinden yararlanarak, jeton işleme mekanizmasının ve doğrulama mantığının doğru şekilde çalıştığından emin olabilirsiniz.

Cloudflare Challenge söz konusu olduğunda, sistemi tanımlamak, davranışını incelemek ve korumanın düzgün çalıştığını doğrulamak yeterlidir. Bu yazıda, Cloudflare Challenge nasıl tespit edilir ve entegrasyonu ya da yeniden yapılandırılması için talimatların nerede bulunabileceği gösterdik; böylece korumayı güvenle sürdürebilir ve çalışmasını kontrol altında tutabilirsiniz.

Conclusion

Cloudflare Challenge hakkında sık sorulan sorular

Cloudflare, doğrulamayı zaten geçmiş bir istemciyi tanımak için cf_clearance çerezini kullanır. CapMonster Cloud API bunu getTaskResult yanıtında döndürür.

Ham HTTP istekleri için: hedef web sitesine yapılan sonraki isteklerde Cookie: cf_clearance=<value> başlığında gönderin.

Tarayıcı otomasyonu için: Cloudflare «Just a moment» sayfasının çözümünü otomatikleştirmek için Playwright, Selenium, Puppeteer veya başka bir headless tarayıcı ile korumalı URL'yi yeniden yüklemeden önce tarayıcı bağlamına enjekte edin.

cf_clearance çerezi artık geçerli değilse, Cloudflare korumalı içeriğe erişim vermek yerine challenge'ı tekrar gösterebilir. Bu durumda:

  1. Challenge yanıtından gelen yeni htmlPageBase64 (403 yanıtıyla gösterilen Base64 kodlu «Just a moment» HTML sayfası) kullanarak yeni bir createTask isteği oluşturun
  2. Yeni bir cf_clearance değeri alın.
  3. Hedef siteye yeni cf_clearance çereziyle isteği yeniden deneyin.

Turnstile genellikle bir sayfaya veya form akışına widget yerleştirirken, Cloudflare Bot Challenge hedef site yüklenmeden önce isteği ayrı bir ara sayfa ile keser.

Cloudflare Challenge için CapMonster Cloud iki sonuç modunu destekler: token veya cf_clearance çerezi döndürebilir.

  • Token tabanlı seçeneği kullanırsanız, görev CapMonster Cloud proxy'leriyle çözülebilir. Bazı özel durumlarda kendi proxy'nizi de kullanabilirsiniz.
  • Sonuçta cf_clearance çerezine ihtiyacınız varsa, görevi oluştururken kendi proxy'nizi kullanmalısınız.

Proxy kullanımı ayrıntıları için görev belgelerine bakın.

CapMonster Cloud, Python, JavaScript/Node.js ve C# için hazır kütüphaneler sağlar. Her kütüphane, çözüm görevi oluşturma ve sonucu sorgulama dahil tam istek döngüsünü kapsar ve challenge çözüldükten sonra token veya cf_clearance çerezini döndürür.