Web Sitelerinde Spam Trafiğini Engelleme (2025 Rehberi)
- Web Sitelerinde Spam Trafiğini Engelleme (2025 Rehberi)
- Neden “bot” ≠ tek tip? (Tehdit modelini oturt)
- Ana savunma katmanları (özet strateji)
- Uygulanabilir kontrol listesi (Hızlı başlangıç)
- Uygulama Taslağı (kopyala–uyarla)
- A) Nginx: Oran sınırlama ve basit işaretler
- B) Cloudflare: Turnstile + WAF mantığı + AI Labyrinth
- C) AWS WAF: Bot Control + yönetilen kurallar
- D) Google reCAPTCHA (Enterprise): OAT uyumlu mimari
- E) GA4: İç/developer trafiğini dışla (ölçüm temizliği)
- F) İzleme & alarm fikirleri
- Neden robots.txt tek başına yetmiyor?
- Kullanıcı deneyimi: “kademeli sürtünme” prensibi
- Ek: Somut “kural seti” taslağı (özet)
Neden “bot” ≠ tek tip? (Tehdit modelini oturt)
Spam trafiği; credential stuffing, carding, scraping, brute force, form spam, API kötüye kullanımı gibi farklı otomasyon davranışlarından oluşur. OWASP’ın Automated Threats to Web Applications (OAT) sınıflandırması, hangi uç noktalar için hangi saldırıların tipik olduğuna dair ortak bir dil sağlar; savunmayı tek bir CAPTCHA’ya indirgemek yerine tehdit odaklı düşünmeyi kolaylaştırır. owasp.org+1
Ana savunma katmanları (özet strateji)
-
WAF + kural setleri: ModSecurity ile OWASP Core Rule Set (CRS) başlangıç bariyeri sağlar; SQLi/XSS gibi klasik istismarlara ek olarak brute force ve hız sınırlamaya yardımcı kurallar içerir. owasp.org+1
-
Oran sınırlama (rate limit) / bağlantı kotası: Nginx’in
limit_reqvelimit_connmodülleri IP ya da özel anahtarlar (örn. IP+username) üzerinden istek hızını düşürür; leaky-bucket algoritması kullanır. nginx.org+1 -
Risk skorlu doğrulama: Cloudflare Turnstile gibi “sessiz” tarayıcı sinyali tabanlı çözümler; düşük güven hâlinde hafif challenge göstererek sürtünmeyi azaltır. Google reCAPTCHA (Enterprise), OAT kategorilerine göre akış bazlı öneriler sunar. Cloudflare Docs+2Cloudflare Docs+2
-
Honeypot/decoy taktikleri: Görünmeyen form alanları, sahte endpoint’ler ve (Cloudflare tarafında) AI Labyrinth gibi “yönlendirip oyalayan” çözümlemeler, robots.txt’ye uymayan yeni nesil tarayıcılara karşı etkili bir ek katmandır. The Cloudflare Blog
-
Scraper ekosistemi ve robots.txt gerçekliği: 2024–2025’te yayıncılar ve altyapı sağlayıcıları, robots.txt’yi yok sayan ve kimliğini gizleyen AI tarayıcılarına karşı (örn. varsayılan engelleme, “Pay Per Crawl” gibi) daha agresif önlemler duyurdu; robots.txt tek başına yeterli değil. The Verge+2Reuters+2
-
Ölçüm temizliği: Başarıyı ölçmek için GA4’te internal ve developer trafiğini filtrele; aksi hâlde bot azaltma etkisini göremezsin. Google Yardım
-
API’lere özel sıkılaştırma: 2024’te web saldırıları %33 artarken API’ler birincil hedef hâline geldi; rate limit + kimlik doğrulama + davranışsal sinyaller şart. vmblog.com+1
Uygulanabilir kontrol listesi (Hızlı başlangıç)
-
Kritik uçları çıkar:
/login,/signup, ödeme/form akışları,/search, ürün beslemeleri ve API uçları; her birini OAT kategorisiyle eşleştir. owasp.org -
WAF/CRS’i aç ve tuning yap: Hatalı pozitifleri azaltmak için istisna kuralları tanımla. CRS Project
-
Oran sınırla: Nginx ile IP ve akışa özgü anahtarlarla rate limiting uygula. nginx.org
-
Riskli akışlarda challenge: Turnstile/reCAPTCHA’yı login, kayıt ve ödeme gibi yüksek riskli akışlarda puan/karar mekanizmasıyla devreye al. Cloudflare Docs+1
-
Honeypot/decoy ekle: Form honeypot’ları + (Cloudflare kullanıyorsan) AI Labyrinth. The Cloudflare Blog
-
Scraper yönetimi: ASN/ülke/UA sinyalleriyle kurallar, hız limitleri, JSON/Feed uçlarına Accept/Referer hijyeni.
-
Ölçüm temizliği: GA4 iç/developer trafiğini dışla. Google Yardım
-
Sürekli gözlem: 429/5xx oranları, çerezsiz istek patlamaları, belirli ASN/ülkelerden ani sıçramalar için alarmlar kur.
-
Trendleri izle: Akamai’nin yıllık/çeyreklik SOTI raporları API/bot eğilimlerini takip için iyi bir referans. Akamai
Uygulama Taslağı (kopyala–uyarla)
A) Nginx: Oran sınırlama ve basit işaretler
Login akışı için IP + kullanıcı adı birleşik anahtar:
Nginx’in
limit_reqmodülü leaky-bucket yöntemiyle çalışır; anahtar seçiminde IP’nin NAT arkasında paylaşılıyor olabileceğini unutma. nginx.org+1
Form spam için honeypot + hız limiti:
Sık kazınan uçlar (search/feed/sitemap) için dar boğaz:
B) Cloudflare: Turnstile + WAF mantığı + AI Labyrinth
Turnstile entegrasyonu (özet):
Sunucuda (ör. Node) doğrularken token’ı /siteverify ile kontrol et; puan düşükse ek doğrulama iste. Turnstile, Cloudflare CDN’i kullanmasan bile gömülebilir; önce sessiz sinyaller toplar, gerekirse hafif bir challenge gösterir. Cloudflare Docs+1
AI Labyrinth (decoy sayfalarla oyalama): robots.txt’ye uymayan/bilinen AI tarayıcılarına karşı botu “labirente” sokarak kaynaklarını tüketen yeni savunma; Cloudflare üzerinde ücretsiz/opt-in sunuluyor. The Cloudflare Blog
Güncel bağlam: Cloudflare 2025’te AI crawler’ları varsayılan engelleme ve Pay Per Crawl seçeneklerini duyurdu; robots.txt’yi yok sayan botlara karşı altyapı seviyesinde kontrol sağlıyor. The Verge+1
C) AWS WAF: Bot Control + yönetilen kurallar
-
AWS WAF Bot Control: Bilinen bot kategorilerini (iyi/kötü) ayıran yönetilen kurallar; özel kurallarla birleştirilebilir. docs.aws.amazon.com+1
Örnek (IP başına /login rate limit + Bot Control):
D) Google reCAPTCHA (Enterprise): OAT uyumlu mimari
Google’ın OAT tehditlerine göre en iyi uygulamalar kılavuzu, kart dolandırıcılığı, credential stuffing vb. senaryolarda puan tabanlı karar akışları ve “ek doğrulama” önerir. Uygulamada, skor/bağlama göre “izin ver / MFA iste / insan doğrulaması iste / reddet” kuralı tanımla. Google Cloud+1
E) GA4: İç/developer trafiğini dışla (ölçüm temizliği)
-
Internal traffic: IP’leri “Define internal traffic” ile tanımla, ardından Data Filters’ta Exclude olarak aktif et. Google Yardım
-
(İpucu) GA4, iç trafikten gelen vuruşlara
tt=internalişareti koyar; validasyonu kolaylaştırır. selnekovic.com
F) İzleme & alarm fikirleri
-
429/5xx oranı ve endpoint başına z-skor sapmaları.
-
Cookie-less istek oranı, ASN/ülke bazlı patlamalar.
-
Decoy/honeypot isabetleri metriki (AI Labyrinth/honeypot sayfalarına giriş).
-
API saldırı trendleri için Akamai’nin SOTI raporlarını periyodik takip. vmblog.com
Neden robots.txt tek başına yetmiyor?
Son 1 yılda; kimliğini gizleyen, robots.txt’yi görmezden gelen ya da UA/başlık taklidi yapan AI tarayıcılarına dair çok sayıda bulgu paylaşıldı. Bu yüzden altyapı seviyesinde engelleme (WAF/ASN/UA/Rate limit/Decoy) gereklidir. arstechnica.com+1
Kullanıcı deneyimi: “kademeli sürtünme” prensibi
-
Herkese CAPTCHA göstermek yerine, risk skorlu ve kademeli zorlaştırma kullanın: düşük riskli akışlarda sürtünme yok; risk yükseldikçe MFA / challenge / manuel inceleme. Turnstile ve reCAPTCHA bu modeli destekler. Cloudflare Docs+1
Ek: Somut “kural seti” taslağı (özet)
-
Nginx:
/loginiçin IP+username anahtarıylalimit_req; form uçlarına honeypot + saatlik limit; “sıcak” scraping uçlarına 1 r/s sınırı. nginx.org -
Cloudflare: Turnstile’ı yalnızca login/signup/ödeme gibi riskli akışlara yerleştir; AI Labyrinth’i aç; bilinen AI UA’ları ve “şüpheli oran” için WAF’ta Managed Challenge uygula. Cloudflare Docs+1
-
AWS WAF: Önde Allowlist → Bot Control → Common Rule Set → akışa özel rate limit. docs.aws.amazon.com
-
GA4: Internal/Developer filtreleri Active; bot benzeri oturumlar için ayrı segment oluştur. Google Yardım
-
Sürekli iyileştirme: Hatalı pozitif vakalarını toplayıp istisnalar yaz; eşikleri haftalık gözden geçir.
-
Trend takibi: API saldırıları ve scraper davranışlarına dair Akamai SOTI raporlarını takip et. Akamai





