Kasada Anti-Bot Açıklaması: 2026 Tespit ve Geçiş Rehberi

Kasada anti-bot sistemini teknik derinlikte inceleyen bu rehber, ips.js bytecode VM, x-kpsdk-ct başlıkları, JA3/JA4 parmak izi tespiti ve residential proxy ile temiz geçiş stratejilerini kapsar.

Kasada Anti-Bot Explained: Detection Architecture & Legitimate Automation in 2026
Bu makalede

Kasada Anti-Bot Sistemi Nasıl Çalışır?

Kasada anti-bot açıklaması ile başlayalım: Kasada, istemci tarafı JavaScript zorlukları, TLS parmak izi analizi ve IP itibar puanlamasını birleştiren çok katmanlı bir bot tespit platformudur. 2026 itibarıyla, Fortune 500 şirketlerinin önemli bir kısmı tarafından kullanılan platform, geleneksel CAPTCHA yerine görünmez zorluklar (invisible challenges) tercih eder. Bir kullanıcı sayfayı yüklediğinde, Kasada'nın ips.js betiği arka planda çalışır, bir dizi fingerprint toplar ve şifrelenmiş bir payload üretir. Bu payload sunucu tarafından doğrulanır; geçersizse 429 Too Many Requests yanıtı ve x-kpsdk-ct başlığı döndürülür.

Senior scraping ekipleri için kritik nokta şudur: Kasada'nın tespiti tek bir kontrol noktasına dayanmaz. TLS handshake aşamasında başlayan süreç, HTTP/2 çerçeve sıralaması, JavaScript yürütümü ve IP/ASN analizi ile katmanlanır. Bu nedenle cihaz parmak izi spoofing'i tek başına yeterli değildir; tüm katmanların tutarlı olması gerekir. Kasada bypass girişimleri, bu katmanlardan herhangi birinde tutarsızlık yakalarsa anında başarısız olur.

ips.js ve Bytecode VM Mimarisi

Kasada'nın çekirdeği, ips.js adlı yaklaşık 449 KB boyutunda bir JavaScript dosyasıdır. Bu dosya standart bir JS betiği değil; özel bir bytecode VM (sanal makine) içerir. VM'in çalışma prensipleri şunlardır:

  • Encode edilmiş string tablosu: Tüm string sabitleri (URL'ler, fonksiyon adları, hata mesajları) çok katmanlı obfuscation ile gizlenmiştir. VM bunları yalnızca runtime'da decode eder; statik analiz ile string'leri görmek son derece zordur.
  • Zaman tabanlı seed'ler: VM, Date.now() ve performance.now() değerlerini toplayarak her oturum için benzersiz bir seed üretir. Bu seed, payload şifrelemesinde kullanılır ve token'ın yaklaşık 5 dakika içinde geçersiz hale gelmesini sağlar.
  • Bütünlük kontrolü (integrity checksum): VM, kendi kaynak kodunun hash'ini hesaplar. Eğer bir otomasyon aracı VM'i patch'lemeye çalışırsa (örneğin navigator.webdriver değerini override etmek için), checksum uyuşmaz ve payload geçersiz olur.
  • Anti-debugging: VM, debugger tuzakları, fonksiyon toString() kontrolleri ve timing analizleri ile reverse engineering girişimlerini tespit eder. Bir debugger tespit edildiğinde, VM kasıtlı olarak yanıltıcı payload üretir.

VM çalıştığında, tarayıcının canvas, WebGL, AudioContext, navigator ve screen API'lerinden veri toplar. Bu veriler birleştirilerek bir browser+device fingerprint oluşturulur. Bu fingerprint, Canvas API kullanılarak üretilen görsel hash'ler, WebGL renderer bilgileri ve font listeleri ile zenginleştirilir. Sonuç, şifrelenmiş ve rotasyonlu bir payload olarak x-kpsdk-cd ve x-kpsdk-dv başlıklarında sunucuya gönderilir.

VM'in Topladığı Sinyaller

Sinyal KategorisiÖrnek VerilerTespit Amacı
Canvas fingerprint2D çizim piksel hash'iBenzersiz GPU/render farkı
WebGLVendor, renderer stringHeadless tarayıcı tespiti
AudioContextAudio fingerprint hashVM/sandbox tespiti
navigatoruserAgent, platform, languages, hardwareConcurrencyTutarlılık kontrolü
Timingperformance.now() deltasAnti-debugging ve automation tespiti
ScreencolorDepth, pixelRatio, availWidth/HeightSpoofing tespiti
BehavioralMouse hareketi, scroll pattern, key timingBot davranış analizi

Davranışsal Analiz ve Canvas Parmak İzi

Kasada VM'i yalnızca statik fingerprint toplamaz; davranışsal sinyalleri de izler. Sayfa yüklendikten sonra fare hareketlerinin olmaması, scroll olaylarının eksikliği veya tuş basış zamanlamasının mükemmele yakın düzenliliği, bot sinyali olarak değerlendirilir. Gerçek kullanıcılar düzensiz mouse hareketleri yapar; bir automation script'i ise genellikle hiç mouse event'i üretmez veya matematiksel olarak mükemmel yörüngeler kullanır.

Canvas fingerprinting konusunda, VM bir canvas elementine metin ve şekiller çizer, ardından toDataURL() çıktısının hash'ini alır. Bu hash, GPU, sürücü ve işletim sistemi kombinasyonuna göre değişir. Headless tarayıcılarda (örneğin headless: true modunda Chromium), canvas çıktısı gerçek tarayıcıdan farklıdır çünkü donanım hızlandırma devre dışı kalabilir. Kasada bu farkı tespit edebilir.

KP_UIDz Çerezi ve x-kpsdk Başlık Ailesi

Kasada, başarılı bir zorluk çözümünden sonra KP_UIDz adlı bir çerez atar. Bu çerez, kullanıcının sonraki isteklerde zorluğu yeniden çözmesini engelleyen bir proof-of-work token'ıdır. KP_UIDz değerinin geçerlilik süresi siteye göre değişir; tipik olarak 30 dakika ila 24 saat arasındadır. Çerez, IP adresi ile ilişkilendirilir; IP değişirse çerez geçersiz hale gelir.

İstek başlıklarında ise üç kritik başlık bulunur:

  • x-kpsdk-ct — Challenge Token: VM tarafından üretilen ana proof-of-work token'ıdır. Sunucu bu token'ı doğrular; geçersizse 429 yanıtı döner. Bir kasada bypass girişiminde bu token'ın geçerli olması şarttır.
  • x-kpsdk-cd — Challenge Data: Fingerprint verilerini içeren şifrelenmiş payload'dur. Her istekte rotasyon eder; aynı payload iki kez kullanılamaz.
  • x-kpsdk-dv — Device Vector: Cihaz ve tarayıcı özelliklerinin özetidir. Bu değer, x-kpsdk-cd ile çapraz doğrulanır; tutarsızlık tespit edilirse token reddedilir.
Pratik ipucu: Bir 429 yanıtı aldığınızda ve x-kpsdk-ct başlığı mevcutsa, bu token'ın geçersiz olduğu anlamına gelir. Sebebi genellikle: (1) VM'in tam çalışmaması, (2) fingerprint tutarsızlığı, (3) IP itibarının düşük olması veya (4) token'ın süresinin dolmuş olmasıdır (yaklaşık 5 dakika).

TLS (JA3/JA4) ve HTTP/2 Parmak İzi

Kasada, JavaScript zorluğuna ulaşmadan önce bile, bağlantı katmanında tespit yapar. Bu, iki temel teknoloji üzerinden çalışır:

JA3 ve JA4 Parmak İzi

TLS 1.3 handshake sırasında, istemci sunucuya bir ClientHello mesajı gönderir. Bu mesajın içinde cipher suite listesi, extension'lar ve elliptic curve bilgileri bulunur. JA3 algoritması, bu verileri belirli bir sırayla hash'leyerek bir parmak izi üretir. JA4 ise benzer şekilde çalışır ama daha yapılandırılmış bir format kullanır ve TLS sürümünü ayrı bir alanda tutar.

Kasada, bilinen tarayıcı parmak izlerini bir veritabanında tutar. Örneğin:

  • Chrome 120+ (Windows): Cipher suite sıralaması TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256 şeklindedir. Extension sıralaması ve ALPN değerleri de bu parmak izinin parçasıdır.
  • Python requests: Python'ın ssl modülü farklı cipher sıralaması kullandığı için farklı JA3 üretir — bu anında tespit edilir. requests kütüphanesi TLS 1.2'yi önceliklendirir ve extension listesi tarayıcıdan farklıdır.
  • curl: libcurl'ün TLS yapılandırması da tarayıcıdan farklıdır. Cipher sıralaması, signature_algorithms extension'ı ve supported_versions listesi Chrome ile uyuşmaz.

Eğer JA3 parmak izi bilinen bir tarayıcıya uymuyorsa, Kasada IP'yi henüz JS aşamasına geçirmeden işaretleyebilir. Bu noktada residential proxy kullanımı bile yardımcı olmaz; TLS parmak izini düzeltmek zorunludur.

HTTP/2 Çerçeve Parmak İzi

HTTP/2 protokolünde, istemci bağlantı kurulduğunda bir SETTINGS çerçevesi gönderir. Bu çerçevenin alanları (HEADER_TABLE_SIZE, MAX_CONCURRENT_STREAMS, INITIAL_WINDOW_SIZE, MAX_FRAME_SIZE) ve sıralaması, her HTTP/2 istemcisi için farklıdır. Kasada, bu çerçeve sıralamasını bir parmak izi olarak kullanır.

Örneğin, Chrome'un HTTP/2 SETTINGS çerçevesi sırası [1, 2, 4, 3] şeklindeyken ve INITIAL_WINDOW_SIZE değerini 12517377 olarak ayarlarken, Python httpx kütüphanesi farklı bir sıralama ve farklı değerler kullanır. Bu fark, Kasada için güçlü bir sinyaldir ve TLS parmak izi geçse bile HTTP/2 seviyesinde tespit sağlar.

IP İtibar Skorlaması

Kasada, TLS ve HTTP/2 parmak izlerini geçseniz bile, IP adresini bir trust skoruyla değerlendirir. Bu skor, ASN türü, IP'nin önceki kötüye kullanım geçmişi ve coğrafi tutarlılık gibi faktörlerden hesaplanır. Bir IP'nin trust skoru düşükse, Kasada daha agresif zorluklar sunar veya doğrudan reddeder.

Neden Residential Proxy'ler Zorunludur

Kasada'nın IP itibar sistemi, bot tespitinin en ağırlıklı bileşenlerinden biridir. Platform, gelen IP adreslerini ASN (Autonomous System Number) bazlı sınıflandırır:

IP TürüÖrnek ASN'lerKasada DavranışıTrust Skoru
DatacenterAS14061 (DigitalOcean), AS16509 (AWS), AS14618 (Lambda Labs)Ön blok / yüksek riskÇok düşük
ResidentialAS7922 (Comcast), AS3320 (Deutsche Telekom)Normal akış, JS zorluğuOrta-yüksek
MobileAS30036 (T-Mobile), AS12392 (Vodafone)En esnek, düşük zorlukYüksek

Bilinen datacenter ASN'lerinden gelen istekler, Kasada tarafından doğrudan 403 veya zorluğa girmeden 429 ile reddedilebilir. Bu, ips.js VM'inin bile çalışma fırsatı bulamadığı anlamına gelir. ProxyHat lokasyon sayfasında görebileceğiniz gibi, residential proxy'ler gerçek ISP ASN'lerinden IP sağlar ve bu nedenle Kasada'nın IP itibar kontrolünden temiz geçer.

ProxyHat fiyatlandırması, residential proxy paketlerini datacenter paketlerinden ayrı tutar; bu kasada gibi IP-itibar-duyarlı sistemler için kritik bir ayrımdır. Datacenter proxy ile %5'ten daha düşük başarı oranı elde edilirken, residential proxy ile bu oran %85'in üzerine çıkabilir — tabii diğer katmanlar da tutarlıysa.

ProxyHat ile Yasal Otomasyon Kurulumu

Kasada'nın tüm katmanlarından temiz geçmek için, her katmanda tutarlı bir tarayıcı profili sunmanız gerekir. İşte yetkili test ve halka açık veri izleme için çalışan bir yaklaşım:

1. Adım: Residential Proxy ile Bağlantı

ProxyHat SOCKS5 proxy'sini kullanarak gerçek bir residential IP üzerinden bağlanın. SOCKS5, TLS trafiğini proxy seviyesinde değiştirmeden ilettiği için JA3/JA4 parmak izini korur:

# SOCKS5 ile residential proxy (SOCKS5 port 1080)
curl -x socks5://user-country-US:pass@gate.proxyhat.com:1080 \
  https://hedef-site.com/sayfa

Python ile:

import requests

proxies = {
    "http": "socks5://user-country-US:pass@gate.proxyhat.com:1080",
    "https": "socks5://user-country-US:pass@gate.proxyhat.com:1080"
}

response = requests.get("https://hedef-site.com/sayfa", proxies=proxies)
print(response.status_code)

2. Adım: Gerçek Tarayıcı Runtime Kullanımı

Kasada'nın ips.js VM'i, gerçek bir tarayıcı DOM'u gerektirir. requests veya httpx gibi HTTP istemcileri JS çalıştıramaz. Playwright veya Puppeteer gibi browser automation araçları kullanın:

// Node.js + Playwright örneği
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({
    headless: false, // headless moddan kaçının
    proxy: {
      server: 'socks5://gate.proxyhat.com:1080',
      username: 'user-country-US',
      password: 'pass'
    }
  });

  const page = await browser.newPage();

  // Gerçek kullanıcı davranışı: sayfa yükle, bekle
  await page.goto('https://hedef-site.com/sayfa', {
    waitUntil: 'networkidle'
  });

  // KP_UIDz çerezinin atandığını kontrol et
  const cookies = await page.context().cookies();
  const kpUidz = cookies.find(c => c.name === 'KP_UIDz');
  console.log('KP_UIDz mevcut:', !!kpUidz);

  await browser.close();
})();

3. Adım: Sticky Session ile KP_UIDz Koruma

Kasada, KP_UIDz çerezini belirli bir IP ile ilişkilendirir. Eğer her istekte IP değişirse, çerez geçersiz hale gelir ve Kasada yeniden zorluk sunar. ProxyHat'ın sticky session özelliğini kullanın:

# Sticky session — aynı IP'de kal (session flag)
curl -x socks5://user-session-test123:pass@gate.proxyhat.com:1080 \
  https://hedef-site.com/sayfa

Bu şekilde, user-session-test123 flag'i ile aynı residential IP'de kalır ve KP_UIDz geçerliliğini korur. ProxyHat dokümantasyonunda session yönetimi ve geo-targeting hakkında daha fazla bilgi bulabilirsiniz.

4. Adım: Rate Limiting ve Davranışsal Doğallık

Kasada davranışsal analiz yapar. İsteklerinizin gerçek bir kullanıcıya benzemesi için:

  • İstekler arasına 2-5 saniye rastgele gecikme koyun.
  • Tek IP'den saniyede 10'dan fazla istek göndermeyin.
  • Mouse movement ve scroll event'leri ekleyin (Playwright'ın page.mouse.move() API'sini kullanın).
  • Tutarsız Referer başlıklarından kaçının; her istekte referer zinciri doğal olmalı.

Yaygın Hatalar ve Edge Case'ler

Hata 1: Sadece Header Spoofing

Bazı ekipler, x-kpsdk-ct ve x-kpsdk-cd başlıklarını bir önceki başarılı yanıttan kopyalayıp yeniden kullanmayı dener. Bu çalışmaz çünkü Kasada'nın token'ları zaman tabanlı seed içerir ve yaklaşık 5 dakika içinde geçersiz hale gelir. Ayrıca x-kpsdk-cd payload'u her istekte rotasyon eder; aynı payload iki kez gönderilmesi anormal bir sinyaldir.

Hata 2: Datacenter Proxy ile Zorluk Çözme

VM'i gerçek bir tarayıcıda çalıştırıp geçerli bir KP_UIDz alsanız bile, IP datacenter ASN'sinden geliyorsa Kasada bunu reddeder. IP itibar kontrolü, JS zorluğundan önce veya sonra bağımsız olarak çalışır. Önce IP'yi düzeltin, sonra JS katmanıyla ilgilenin.

Hata 3: Tutarsız TLS Parmak İzi

Playwright'ın Chromium'u ile gerçek Chrome arasında TLS parmak izi farkları olabilir (özellikle headless: true modunda). Bu farklar JA3/JA4 seviyesinde tespit edilir. headless: false modunu kullanın veya headless: 'new' (Chrome'un yeni headless modu) ile TLS parmak izinin gerçek Chrome ile uyuştuğunu doğrulayın.

Hata 4: HTTP/2 Çerçeve Tutarsızlığı

Bazı proxy'ler veya HTTP istemcileri, HTTP/2 SETTINGS çerçevesini değiştirir. SOCKS5 proxy'ler bu sorunu yaratmaz çünkü TLS trafiğini olduğu gibi iletir. Ancak HTTP proxy'ler CONNECT tüneli kullansa bile, bazı ara katmanlar HTTP/2 çerçevelerine müdahale edebilir. SOCKS5 tercih edin.

Hata 5: Geo-Tutarsızlık

IP'nin coğrafi konumu ile tarayıcının navigator.language ve Accept-Language başlığı uyuşmuyorsa, Kasada bunu bir tutarsızlık sinyali olarak değerlendirir. Örneğin, ABD IP'si kullanıyorsanız Accept-Language: en-US,en;q=0.9 gönderin; Almanya IP'si kullanıyorsanız de-DE,de;q=0.9,en;q=0.7 kullanın.

Yasal Uyum ve Etik Kullanım

Bu makaledeki teknik bilgiler, yetkili penetrasyon testi, güvenlik araştırması ve halka açık verilerin izlenmesi için sağlanmıştır. Kasada'nın koruduğu bir hedefe erişmeden önce:

  • Hedef sitenin robots.txt dosyasını kontrol edin ve saygı gösterin.
  • Sitenin Hizmet Şartları'nı (Terms of Service) okuyun; bazı siteler otomatik erişimi açıkça yasaklar.
  • ABD'de CFAA (Computer Fraud and Abuse Act) kapsamında, yetkisiz erişim federal suç sayılabilir ve cezaları ciddi olabilir.
  • AB'de GDPR kapsamında, kişisel veri topluyorsanız açık rıza gerekebilir; anonim/pseudonim veri topladığınızdan emin olun.
  • Yalnızca erişim yetkiniz olan sistemleri veya gerçekten halka açık verileri test edin.

Web scraping kullanım senaryoları ve SERP izleme sayfalarımızda yasal ve etik otomasyon pratikleri hakkında daha fazla bilgi bulabilirsiniz.

Önemli Çıkarımlar

  • Kasada çok katmanlıdır: TLS parmak izi (JA3/JA4), HTTP/2 çerçeve sıralaması, IP/ASN itibarı ve JavaScript VM zorluğu birlikte çalışır. Tek bir katmanı aşmak yeterli değildir; tüm katmanlar tutarlı olmalıdır.
  • ips.js bir bytecode VM'dir: ~449 KB boyutunda, encode edilmiş string tablolu, zaman-seed'li ve integrity-checksum'lı bir VM. Patch'lemek yerine gerçek tarayıcıda çalıştırın.
  • x-kpsdk-ct = token durumu: 429 + x-kpsdk-ct görüyorsanız, token geçersiz. Kök neden: VM tam çalışmıyor, fingerprint tutarsız veya IP itibarı düşük.
  • Residential proxy zorunludur: Kasada datacenter ASN'lerini ön bloklar. ProxyHat residential exit'leri (gate.proxyhat.com:1080 SOCKS5) gerçek ISP IP'leri sağlar.
  • Sticky session kullanın: KP_UIDz çerezi IP'ye bağlıdır. user-session-xxx flag'i ile aynı IP'de kalın.
  • Davranışsal doğallık: Rate limiting uygulayın, mouse/scroll event'leri ekleyin, geo-tutarlılığı koruyun.
  • Etik sınırlar: Yalnızca yetkili test ve halka açık veri için kullanın. CFAA ve GDPR ihlalleri ciddi sonuçlar doğurur.

Sık sorulan sorular

Kasada Anti-Bot Sistemi nedir?

Kasada, istemci tarafı JavaScript zorlukları (ips.js bytecode VM), TLS parmak izi analizi (JA3/JA4), HTTP/2 çerçeve sıralaması ve IP/ASN itibar puanlamasını birleştiren çok katmanlı bir bot tespit platformudur. Geleneksel CAPTCHA yerine görünmez zorluklar kullanır. Başarılı zorluk çözümünde KP_UIDz çerezi ve x-kpsdk-ct token'ı üretilir. 2026 itibarıyla Fortune 500 şirketlerinin önemli bir kısmı tarafından kullanılmaktadır.

Kasada bypass için hangi proxy türü en iyisidir?

Residential proxy'ler Kasada bypass için en iyi seçenektir. Kasada, datacenter ASN'lerini (AWS, DigitalOcean, Google Cloud gibi) ön bloklar ve bu IP'lere çok düşük trust skoru atar. Residential proxy'ler gerçek ISP ASN'lerinden IP sağladığı için Kasada'nın IP itibar kontrolünden temiz geçer. Mobile proxy'ler de yüksek trust skoru sağlar. SOCKS5 protokolü tercih edilmelidir çünkü TLS parmak izini (JA3/JA4) değiştirmeden iletir.

ips.js kasada nasıl çalışır?

ips.js, yaklaşık 449 KB boyutunda özel bir bytecode VM'dir. Encode edilmiş string tablosu, zaman tabanlı seed'ler ve bütünlük kontrolü (integrity checksum) içerir. VM, tarayıcının Canvas, WebGL, AudioContext, navigator ve screen API'lerinden veri toplayarak bir browser+device fingerprint oluşturur. Bu fingerprint şifrelenerek x-kpsdk-cd ve x-kpsdk-dv başlıklarında sunucuya gönderilir. Anti-debugging mekanizmaları ile reverse engineering girişimlerini tespit eder.

x-kpsdk-ct başlığı ne anlama gelir?

x-kpsdk-ct (Challenge Token), Kasada VM'i tarafından üretilen ana proof-of-work token'ıdır. Sunucu bu token'ı doğrular; geçersizse 429 Too Many Requests yanıtı döner. Bir 429 yanıtı ile birlikte x-kpsdk-ct başlığı görüyorsanız, bu token'ın geçersiz olduğu anlamına gelir. Olası nedenler: VM'in tam çalışmaması, fingerprint tutarsızlığı, IP itibarının düşük olması veya token'ın yaklaşık 5 dakikalık geçerlilik süresinin dolmuş olmasıdır.

Kasada anti-bot 2026'da hangi yenilikler getiriyor?

2026'da Kasada, davranışsal analizi güçlendirmiş, HTTP/2 çerçeve parmak izini daha agresif kullanır hale gelmiş ve IP itibar modelini genişletmiştir. VM'in bütünlük kontrolü daha sıkı hale getirilmiş, canvas ve AudioContext fingerprinting derinleştirilmiştir. Ayrıca, geo-tutarlılık kontrolleri (IP konumu ile tarayıcı dilinin uyuşması) daha sıkı uygulanmaktadır. Bu nedenle residential proxy + gerçek tarayıcı runtime + geo-tutarlı profil kombinasyonu 2026'da daha da kritik hale gelmiştir.

Başlamaya hazır mısınız?

148'den fazla ülkede residential, ISP ve mobil proxy'ler. Ücretsiz hesap oluşturun.

Ücretsiz hesap oluştur
← Bloga Dön