« Tüm yayınlar

Trafiğin Yarısı Bottu: 4 Günde Kurulan Katmanlı Savunma

Bir geliştirici, JS çalıştıran headless botların trafiğinin yarısını oluşturduğunu fark edince robots.txt, ISR, Redis ve Vercel BotID ile 4 günlük katmanlı bir savunma kurdu.

GitHub profillerini puanlayıp eleştiren bir Next.js/Vercel projesinin sahibi, temmuz ayında trafik grafiklerindeki ani yükselişin gerçek nedenini araştırdığında rahatsız edici bir tablo buldu: trafiğin yaklaşık yarısı, rotasyonlu veri merkezi proxy'leri üzerinden çalışan, headless tarayıcılarla JavaScript çalıştırıp analytics olaylarını tetikleyen büyük ölçekli scraper botlardan geliyordu. Alibaba Cloud kaynaklı bir istek dalgası veritabanı bağlantı havuzunu tüketip API'yi 500 hatalarıyla çökertirken, botlar ayrıca sahte 'google.com' referrer'ları enjekte ederek SEO panolarını tamamen yanıltıcı hale getirmişti.

Geliştirici, tüm botları engellemek yerine, trafiği gönderenin ödediği maliyete göre sınıflandırma ilkesini benimsedi: User-Agent ve referrer taklit etmek bedavadır, ama residential IP, doğrulanmış bot imzaları ve kriptografik doğrulama bedava değildir. Buna göre robots.txt üzerinden arama/yanıt botlarına (ChatGPT-User, PerplexityBot vb.) izin verilirken eğitim amaçlı crawler'lar (GPTBot, ClaudeBot, CCBot vb.) engellendi.

API tarafında; hız sınırlaması önbellek kontrolünden önceye alındı, sık tekrarlanan veritabanı yazımlarının önüne Redis tabanlı bir SET NX kalkanı kondu ve girdi doğrulaması sertleştirildi. En çok taranan sayfalar force-dynamic'ten ISR'ye geçirilerek her crawler isteğinin sunucu maliyeti sıfırlandı. En pahalı, LLM destekli endpoint ise Vercel BotID ile korunarak insanları ve kendini tanıtan botları geçirirken, kimliğini gizleyen taklitçilere API'ye yönlendiren bir 403 mesajı gösterildi; ayrıca navigator.webdriver kontrolüyle analytics verileri temizlendi.

Bu vaka, mühendisler için bot trafiğinin artık User-Agent veya referrer gibi ücretsiz sinyallerle güvenilir şekilde ayırt edilemeyeceğini; gerçek maliyete dayalı sinyallerin (IP itibarı, doğrulanmış bot kimlikleri, davranışsal maliyet) ve altyapı seviyesinde (önbellekleme, rate limiting sırası, ISR) yapılan küçük ama isabetli düzeltmelerin hem performans hem veri bütünlüğü açısından kritik olduğunu gösteriyor.