Imperva Bot Management Neden Farklı?
Avrupa'daki kurumsal e-ticaret sitelerinde fiyat toplama, envanter takibi veya SERP izleme yapan her scraping mühendisi, er ya da geç Imperva Bot Management (eski adıyla Distil Networks) ile karşılaşır. MediaMarkt, Otto, Zalando gibi devlerin arkasında duran bu katman, basit bir rate-limit filtresi değil; WAF, bot yönetimi ve davranışsal analitiği tek bir boru hattında birleştiren kapsamlı bir tespit sistemi.
Bu makale, Imperva'nın tespit mekanizmalarını somut sinyal düzeyinde açıklıyor ve meşru otomasyon çalışmaları için residential proxy + tutarlı tarayıcı bağlamı stratejilerini paylaşıyor. Hedef kitlemiz, yetkili veri toplama ve güvenlik araştırması yapan mühendisler.
Imperva'nın Yığınındaki Yeri
Imperva, klasik bir WAF'ın ötesinde çalışır. Trafik akışı şu şekildedir:
- DNS katmanı: Imperva'nın anycast ağına yönlendirilir — istek hedef sunucuya ulaşmadan önce Imperva düğümlerinden geçer.
- WAF kural seti: OWASP Top 10 tabanlı imzalar + özelleştirilmiş kurallar.
- Bot Management motoru: IP reputation, TLS parmak izi, cihaz parmak izi, davranışsal modelleme.
- Oturum doğrulama:
__utmvcve Incapsula çerezleri ile JavaScript challenge mekanizması.
Bu katmanlı yapı, tek bir sinyali atlatmanın yeterli olmadığı anlamına gelir. IP reputation'ı geçseniz bile JA3 parmak iziniz sizi ele verebilir; JA3'ü geçseniz bile davranışsal modeliniz otomatik flagged eder.
Tespit Sinyalleri: Derinlemesine Analiz
IP Reputation ve Datacenter Tespiti
Imperva, IP adreslerini ASN, hosting sağlayıcı ve geçmiş davranış verilerine göre sınıflandırır. Bilinen datacenter IP blokları (AWS, Hetzner, OVH, DigitalOcean) doğrudan yüksek risk kategorisine alınır. Bu sınıflandırma statik değildir; IP'nin son 30 gündeki tüm trafiği değerlendirmeye alınır.
Bir datacenter IP'sinden gelen istek, kullanıcıya 503 Service Unavailable veya Imperva challenge sayfası döndürür. Bu, bir hata değil, bir filtre kararıdır.
TLS Parmak İzi: JA3 ve Imperva'nın "Cipher Suite Rollup" İmzası
Imperva, JA3/JA4 parmak izini aktif olarak kullanır — ancak kendi varyantıyla. Imperva'nın "cipher suite rollup" mekanizması, TLS Client Hello'daki cipher suite'lerini önceliklendirilmiş gruplara bölerek normalleştirir. Bu, JA3 hash'inin birebir eşleşmesinden ziyade, grup düzeyinde bir sınıflandırma yapar.
Somut örnek: Chrome 120'nin JA3 imzası şu cipher sıralamasını içerir:
TLS_AES_128_GCM_SHA256,
TLS_AES_256_GCM_SHA384,
TLS_CHACHA20_POLY1305_SHA256,
ECDHE-ECDSA-AES128-GCM-SHA256,
ECDHE-RSA-AES128-GCM-SHA256,
ECDHE-ECDSA-AES256-GCM-SHA384,
ECDHE-RSA-AES256-GCM-SHA384
Python requests kütüphanesi (urllib3 tabanlı) ise çok farklı bir cipher sıralaması sunar — ve Imperva bu sıralamayı "bot-like" olarak işaretler. Cipher suite rollup, sıralamayı birebir kontrol etmek yerine, grup oranlarını kontrol eder: ECDHE grubunda 3 cipher var mı? CHACHA20 grubu mevcut mu? Bu grup-oran analizi, JA3 spoofing'i çok daha zorlaştırır.
User-Agent Normalizasyon Kontrolleri
Imperva, User-Agent string'ini sadece okumaz — normalize eder ve çapraz doğrular:
- Platform tutarlılığı: UA'da "Windows NT 10.0" varsa, Accept-Language başlığında Windows'a özgü dil tercihleri bekler.
- Motor tutarlılığı: UA'da "AppleWebKit/537.36" varsa, sonraki başlıkların Chrome motoruna ait olmasını bekler.
- Sürüm tutarlılığı: UA'da "Chrome/120" varsa, TLS parmak izinin de Chrome 120'nin cipher sıralamasına uymasını bekler.
Bu çapraz doğrulama, rastgele UA spoofing'inin tek başına işe yaramadığı anlamına gelir.
Davranışsal Sinyaller
Imperva'nın en güçlü katmanı davranışsal modellemedir. Şunları izler:
- İstek aralığı düzenliliği: İnsanlar düzensiz aralıklarla tıklar; botlar milisaniye hassasiyetinde düzenli aralıklarla.
- Sayfa kalma süresi dağılımı: Normal kullanıcılar bir sayfada 3-45 saniye kalır; botlar 0.1 saniyede işlemi bitirir.
- Gezinme derinliği: Sadece ürün sayfalarına giden ve hiçbir kategori veya ana sayfa ziyaret etmeyen trafik şüphelidir.
- Mouse ve kaydırma olayları: Gerçek tarayıcılarda mouse hareketleri benzersiz ve düzensizdir; botlarda ya yoktur ya da tekrarlayan bir desene sahiptir.
__utmvc ve Incapsula Çerezleri: Oturum Doğrulama Akışı
Imperva'nın oturum doğrulama mekanizması, __utmvc ve incap_ses_* çerezleri etrafında kuruludur. Akış şu şekildedir:
- İlk istek: Tarayıcı sayfayı ister. Imperva, yanıtta
__utmvcçerezini set eder ve genellikle bir JavaScript challenge sayfası döndürür. - JS Challenge: Tarayıcıda çalışan Imperva JavaScript'i, cihaz parmak izi verilerini toplar (canvas, WebGL, ekran çözünürlüğü, yüklü fontlar, zaman dilimi, platform detayları).
- Parmak izi gönderimi: Toplanan veriler, istemci tarafında işlenir ve
__utmvcçerezinin değeri olarak set edilir. Bu değer, sunucu tarafında doğrulanır. - incap_ses_* çerezi: Başarılı doğrulama sonrası, Imperva oturum çerezi (
incap_ses_*) set eder. Bu çerez, sonraki isteklerde "doğrulanmış tarayıcı" olarak kabul edilir. - Sonraki istekler: Her istekte çerezler gönderilir; Imperva bunları doğrular ve davranışsal analitik ile sürekli değerlendirir.
Kritik nokta: __utmvc çerezi, sadece bir çerez değil, bir cihaz parmak izi taşıyıcısıdır. Bu çerezi kopyalamak, parmak izini de kopyalamak anlamına gelir — ancak IP adresi değiştiğinde Imperva, çerez ile IP arasındaki tutarsızlığı tespit eder.
Challenge akışını curl ile gözlemleyelim:
# İlk istek — challenge sayfası döner
curl -v \
-x http://user-country-DE:PASSWORD@gate.proxyhat.com:8080 \
'https://www.mediamarkt.de/de/product/12345.html'
# Yanıt: 200 OK ancak gövde Imperva JS challenge içerir
# İkinci istek — __utmvc çerezi ile
curl \
-x http://user-country-DE:PASSWORD@gate.proxyhat.com:8080 \
-H 'Cookie: __utmvc=COMPUTED_FINGERPRINT; incap_ses_123=SESSION_TOKEN' \
'https://www.mediamarkt.de/de/product/12345.html'
Neden Residential Proxy + Tutarlı Tarayıcı Bağlamı Gerekli?
Imperva'nın katmanlı tespit yapısı, tek bir bypass noktası bırakmaz. Datacenter IP + headless browser kombinasyonu, en az üç sinyalde flagged olur:
| Sinyal | Datacenter + Headless | Residential + Stealth Browser |
|---|---|---|
| IP Reputation | ❌ Hosting ASN — yüksek risk | ✅ ISP ASN — düşük risk |
| JA3 / TLS | ❌ Python requests cipher sırası | ✅ Gerçek Chrome TLS sırası |
| UA Çapraz Doğrulama | ❌ UA vs TLS uyuşmazlığı | ✅ Tutarlı Chrome imzası |
| JS Challenge (__utmvc) | ❌ JS çalıştırılamaz | ✅ Gerçek JS motoru çalıştırır |
| Davranışsal Model | ❌ Düzenli istek aralıkları | ✅ İnsan-benzeri varyasyon |
Bu tablo açıkça gösteriyor: Imperva'yı geçmek, tek bir bileşeni düzeltmekle değil, tüm sinyalleri tutarlı hale getirmekle mümkündür. Residential proxy, IP reputation sinyalini çözer; ancak TLS, UA, JS ve davranışsal sinyaller için gerçek bir tarayıcı motoru gerekir.
Residential Proxy'nin Avantajı
Residential proxy'ler, gerçek ISP'lere ait IP adresleri sunar. Imperva'nın IP reputation veritabanında bu adresler "datacenter" olarak işaretlenmez. Ancak, IP başına istek hacmi de izlenir — tek bir residential IP'den dakikada yüzlerce istek gelmesi, o IP'yi hızla flagged eder.
Bu nedenle, residential proxy kullanırken IP rotasyonu stratejisi kritiktir. ProxyHat'ın sticky session özelliği, bir oturum boyunca aynı IP'yi korur — bu, Imperva'nın oturum süresi boyunca IP tutarsızlığını tespit etmesini engeller.
Avrupa'da Imperva: Almanya Odaklı Strateji
Almanya, Avrupa'nın en büyük e-ticaret pazarlarından biri ve Imperva'nın en yoğun kullanıldığı bölge. MediaMarkt, Otto, Saturn, Conrad Electronic gibi siteler Imperva Bot Management kullanıyor. Bu sitelerde veri toplamak isteyen mühendisler için Almanya lokasyonlu residential proxy'ler kritik.
Neden?
- Geo-fencing: Bu siteler, Almanya dışından gelen trafiği farklı fiyatlar veya farklı ürün kataloglarıyla karşılayabilir.
- IP coğrafi tutarlılık: UA'da "de-DE" dil tercihindeyseniz ve IP Almanya'dan geliyorsa, Imperva bu tutarlılığı olumlu değerlendirir.
- Yerel ISP dağılımı: Telekom, Vodafone, O2 gibi Alman ISP'lerinden gelen trafik, Imperva'nın "normal kullanıcı" modeline uyar.
ProxyHat ile Almanya lokasyonlu residential proxy kullanımı:
# Python örnek: Almanya lokasyonlu residential proxy ile Playwright
from playwright.sync_api import sync_playwright
import random
import time
PROXY_URL = "http://user-country-DE:PASSWORD@gate.proxyhat.com:8080"
with sync_playwright() as p:
browser = p.chromium.launch(
headless=True,
proxy={"server": PROXY_URL}
)
context = browser.new_context(
locale="de-DE",
timezone_id="Europe/Berlin",
user_agent=(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/125.0.0.0 Safari/537.36"
),
viewport={"width": 1920, "height": 1080},
geolocation={"latitude": 52.52, "longitude": 13.405},
permissions=["geolocation"]
)
page = context.new_page()
# İnsan-benzeri gecikme ile gezinme
page.goto("https://www.mediamarkt.de/", wait_until="networkidle")
time.sleep(random.uniform(2.0, 5.0)) # İnsan-benzeri bekleme
# Kategori sayfasına git
page.click("text=Smartphones")
time.sleep(random.uniform(1.5, 3.5))
# Ürün sayfasına git
product = page.query_selector(".product-title a")
if product:
product.click()
time.sleep(random.uniform(3.0, 8.0))
price = page.query_selector(".price")
if price:
print(f"Fiyat: {price.inner_text()}")
context.close()
browser.close()
Şehir Seviyesinde Hedefleme
Bazı Imperva kurulumları, IP'nin şehir seviyesinde coğrafi konumunu da kontrol eder. Örneğin, Berlin'deki bir kullanıcı olarak görünmek istiyorsanız:
# Şehir seviyesinde hedefleme
PROXY_URL = "http://user-country-DE-city-berlin:PASSWORD@gate.proxyhat.com:8080"
# curl ile test
curl -x $PROXY_URL \
-H 'Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7' \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9' \
'https://www.otto.de/'
Meşru Erişim Desenleri: Uygulama Rehberi
1. Stealth Browser + Residential Proxy
Imperva'nın JS challenge'larını geçmek için gerçek bir tarayıcı motoru gerekir. Playwright veya Puppeteer, headless: true modunda bile Imperva'nın bazı parmak iz kontrollerini geçemez — çünkü headless modda navigator.webdriver bayrağı true olarak ayarlanır ve canvas parmak izi farklılık gösterir.
Çözüm: Playwright-stealth veya benzeri eklentiler kullanarak headless tespit kontrollerini atlatın. Daha da iyisi, headless: false modunda çalıştırın.
2. Oturum Tutarlılığı
Imperva, __utmvc çerezini bir kez aldıktan sonra, sonraki isteklerde aynı IP + aynı çerez kombinasyonunu bekler. IP rotasyonu yaparken:
- Sticky session kullanın: ProxyHat'ın
user-session-SESSION_IDparametresi ile aynı IP'yi koruyun. - Oturum başına bir IP: Her scraping oturumu için yeni bir sticky session başlatın.
- Oturumu düzgün kapatın: Çerezleri temizleyip yeni oturum başlatın.
# Node.js örnek: Sticky session ile oturum yönetimi
const { chromium } = require('playwright');
const crypto = require('crypto');
async function scrapeProduct(url) {
// Her oturum için benzersiz session ID
const sessionId = crypto.randomUUID();
const PROXY_URL = `http://user-country-DE-session-${sessionId}:PASSWORD@gate.proxyhat.com:8080`;
const browser = await chromium.launch({
proxy: { server: PROXY_URL }
});
const context = await browser.newContext({
locale: 'de-DE',
timezoneId: 'Europe/Berlin',
});
const page = await context.new_page();
try {
await page.goto(url, { waitUntil: 'networkidle' });
// İnsan-benzeri bekleme
await page.waitForTimeout(2000 + Math.random() * 3000);
// Fiyat çekme
const price = await page.$eval('.price', el => el.textContent);
return price;
} finally {
await context.close();
await browser.close();
}
}
// Her ürün için yeni oturum
const urls = [
'https://www.mediamarkt.de/de/product/12345.html',
'https://www.mediamarkt.de/de/product/67890.html',
];
for (const url of urls) {
const price = await scrapeProduct(url);
console.log(`${url}: ${price}`);
// Oturumlar arası insan-benzeri bekleme
await new Promise(r => setTimeout(r, 5000 + Math.random() * 10000));
}
3. İnsan-Benzeri Davranış Modelleme
Imperva'nın davranışsal analitiği, istek aralıklarının düzenliliğini ölçer. Sabit bir time.sleep(3) kullanmak, düzensizlikten daha şüpheli olabilir. Rastgele gecikme fonksiyonu kullanın:
- Kısa istekler (API çağrıları): 1-3 saniye rastgele gecikme.
- Sayfa gezinme: 3-10 saniye rastgele gecikme + kaydırma simülasyonu.
- Oturumlar arası: 30 saniye - 5 dakika rastgele gecikme.
4. Canvas ve WebGL Parmak İzi Yönetimi
Imperva'nın JS challenge'ı, canvas rendering ve WebGL parametrelerini toplar. Stealth browser kullanırken:
- Canvas parmak izini her oturumda tutarlı tutun — aynı oturum içinde değişen parmak izi flagged olur.
- WebGL vendor ve renderer string'lerini gerçek GPU değerlerine ayarlayın.
- Font listesini gerçek bir Windows/macOS kurulumuna benzetin — headless Chrome'un varsayılan font listesi çok kısadır.
5. Rate Limiting ve Saygılı Toplama
Imperva, bir IP'nin dakikada yaptığı istek sayısını izler. Eşikler siteye göre değişir ancak genel kural:
- Dakikada 10-15 istek altında kalın.
- Saatte 200-300 istek altında kalın.
- Günde 1000-2000 istek altında kalın.
Bu limitleri aşarsanız, IP flagged olur ve residential proxy havuzundan çıkabilir. Daha fazla bilgi için web scraping kullanım senaryoları sayfamıza göz atın.
Proxy Türlerinin Karşılaştırması: Imperva Geçme Oranları
| Proxy Türü | IP Reputation | Geo-Hedefleme | Oturum Tutarlılığı | Imperva Geçme Oranı |
|---|---|---|---|---|
| Datacenter | ❌ Yüksek risk | ⚠️ Sınırlı | ✅ Sabit IP | ~5-15% |
| Shared Datacenter | ❌ Çok yüksek risk | ❌ Yok | ❌ Değişken | ~1-5% |
| Residential (Rotating) | ✅ Düşük risk | ✅ Ülke/şehir | ❌ Her istekte değişir | ~40-60% |
| Residential (Sticky) | ✅ Düşük risk | ✅ Ülke/şehir | ✅ Oturum boyunca sabit | ~80-95% |
| Mobile | ✅ En düşük risk | ✅ Ülke/şehir | ✅ Oturum sabit | ~90-98% |
Bu oranlar, stealth browser + doğru UA/locale yapılandırması varsayımıyla verilmiştir. Datacenter proxy + Python requests kombinasyonu ile Imperva'yı geçmek neredeyse imkansızdır.
ProxyHat'ın residential proxy paketleri ve fiyatlandırması için fiyatlandırma sayfamıza göz atın. 190+ ülke lokasyonu ve şehir seviyesinde hedefleme desteği mevcuttur.
Etik ve Yasal Çerçeve
Her scraping çalışması, hedef sitenin robots.txt dosyasına ve kullanım koşullarına uygun olmalıdır. GDPR kapsamında kişisel veri toplamak yasal riskler taşır. Bu makaledeki teknikler, aşağıdaki meşru senaryolar için tasarlanmıştır:
- Yetkili güvenlik araştırması: Penetrasyon testi sözleşmesi kapsamında Imperva bypass testi.
- Kendi sitenizin testi: Kendi kurumunuzun Imperva korumasını doğrulama.
- Genel fiyat karşılaştırma: Halka açık ürün sayfalarından veri toplama (ToS'a uygun).
- SEO ve SERP izleme: Arama motoru sonuç sayfalarını izleme — SERP tracking kullanım senaryosu.
Her durumda, hedef sitenin sunucularına aşırı yük bindirmemeye özen gösterin ve yerel yasalara danışın.
Key Takeaways
- Imperva katmanlı tespit kullanır: IP reputation, JA3/TLS, UA doğrulama, JS challenge ve davranışsal modelleme tek bir boru hattında çalışır.
- __utmvc çerezi cihaz parmak izi taşır: Bu çerezi kopyalamak yetmez; IP ile çerez arasındaki tutarlılık da korunmalıdır.
- Residential + sticky session şart: Datacenter IP'ler Imperva'da neredeyse geçmez; residential proxy ile sticky session kullanın.
- Almanya lokasyonu kritik: MediaMarkt, Otto gibi sitelerde geo-fencing var; DE residential proxy ile tutarlı locale/zaman dilimi kullanın.
- Davranışsal modelleme en güçlü sinyal: Düzenli istek aralıkları, sabit bekleme süreleri ve yüzeyel gezinme paternleri flagged olur.
- Ethical scraping: robots.txt ve ToS'a uygun, hedef siteye aşırı yük bindirmeyen toplama yapın.
Imperva Bot Management'ı meşru amaçlarla geçmek, tek bir bypass tekniğiyle değil, tutarlı bir tarayıcı bağlamı + residential proxy + insan-benzeri davranış modelinin birleşimiyle mümkündür. ProxyHat'ın Almanya lokasyonlu residential proxy'leri ve sticky session desteği, bu stratejinin temel taşını oluşturur. Lokasyon sayfamızdan kullanılabilir ülkeleri kontrol edin ve bugün başlayın.






