Makale Rehberi
Geçtiğimiz günlerde web sitesinin arka planını kontrol ettim ve günlük ortalama ziyaret sayısı sadece birkaç bin civarında.
Google Analytics'i açtığımda tamamen şok oldum.
Bir gün, sayfa görüntülemelerim aniden 20.000'i aştı ve sonunda ünlü olduğumu düşünerek çok sevindim. Ancak tarayıcı dağılımını daha yakından incelediğimde, trafiğin %90'ının "HeadlessChrome" adı verilen bir şeyden geldiğini keşfettim.
ChatGTP'ye bunun hangi tarayıcı olduğunu sordum. Chrome'un yeni bir sürümü mü?
Yapay zeka bunun bir tarayıcı olmadığını söyledi.
Bu bir robot.

HeadlessChrome tam olarak nedir?
HeadlessChrome, adından da anlaşılacağı gibi, Chrome'un grafik arayüzü olmayan modudur. Chrome, her gün kullandığınız tarayıcıdır. Grafik arayüzü olmayan mod, tarayıcının grafik arayüzünü devre dışı bırakarak, yalnızca komut satırı kullanılarak arka planda çalışmasına olanak tanır.
Adres çubuğu yok, yer imleri çubuğu yok, görebileceğiniz hiçbir şey yok. Sadece bir tarayıcı motorunu çağıran, web sayfanızı yükleyen ve ardından içeriği kazıyan bir kod parçası.
Gerçek kullanıcılar web'de gezinmek için asla böyle bir şey kullanmaz. Siz ve ben haber okumak, video izlemek ve Taobao'dan alışveriş yapmak için Chrome'u açıyoruz . HeadlessChrome ise verilerinizi toplamak ve gitmek için web sayfanızı açıyor.
Dolayısıyla, istatistik panelinizde HeadlessChrome'un trafiğin %80'ini hatta %90'ını oluşturduğunu gördüğünüzde, bu trafiğin %100 bot trafiği olduğu sonucuna varabilirsiniz.
Tüm bu bot trafiği nereden geliyor?
Doğrusu, kaynaklar çok çeşitli.
En yaygın örnek web kazıma işlemidir. Bazı şirketler veya bireyler, Puppeteer, Playwright veya Selenium gibi otomasyon çerçevelerini kullanarak başsız tarayıcılar başlatır ve web sayfası içeriğini toplu olarak kazır. Bazıları ürün fiyatlarını, bazıları haber makalelerini, bazıları ise rakip verilerini kazır.
Ve sonra da yapay zeka var. Şimdi, çeşitli yapay zeka araçları, yapay zeka arama motorları ve yapay zeka bilgi erişim sistemleri, arka planda web sayfalarını inceliyor. Bir makale yayınladığınızda, düzinelerce yapay zeka ajanı içeriğinizi aynı anda okuyor olabilir.
Daha incelikli bir yöntem ise kendi zamanlanmış görevlerinizi kullanmaktır. Örneğin, HeadlessChrome kullanarak belirli bir sayfanın sıralama değişikliklerini her saat kontrol eden bir SEO izleme komut dosyası çalıştırabilirsiniz . Veya bu aracı kullanarak sayfanın periyodik olarak resimlerini çeken otomatik bir ekran görüntüsü hizmeti kurabilirsiniz.
En can sıkıcı türü ise sonuncusu: kötü amaçlı tarama. Otomatik komut dosyaları, web sitenizi güvenlik açıkları açısından taramak, arka uç giriş arayüzünüzü test etmek ve hatta toplu olarak spam yorumlar göndermek için çalıştırılır.
İstatistik arka ucu HeadlessChrome'u nasıl tanımlıyor?
Aslında oldukça basit. Her tarayıcı, bir web sayfasına erişirken istek başlığına "ben kimim" diyen bir User-Agent alanı ekler. HeadlessChrome'un varsayılan User-Agent değeri "HeadlessChrome" dizesini içerir. Analiz sisteminiz bu alanı ayrıştırdığında bunu anlayacaktır.
Ancak, web tarayıcı geliştiricisi kodda küçük bir değişiklik yapıp User-Agent'ı normal bir Chrome veya Safari tanımlayıcısına değiştirirse, istatistik arka ucundan bunu hiç anlayamazsınız. İşte asıl sorun bu.
Kullanmak içinCloudflare WAF, HeadlessChrome'u tam olarak yakalar.
Tamam, sorunu tespit ettik. Peki nasıl çözeceğiz?
En doğrudan ve etkili çözüm, trafiği CDN veya WAF katmanında engellemektir. Trafiğin sunucunuza ulaşmasını beklemeyin; daha kapıda engelleyin.
Cloudflare kullanıyorsanız, işlem aslında çok basit.
Cloudflare konsolunuza giriş yapın, hedef etki alanını seçin, Güvenlik'i bulun, ardından WAF'a tıklayın, Özel Kurallar'a gidin ve yeni bir kural oluşturun.
Kural adı herhangi bir şey olabilir, örneğin, "Challenge Headless Chrome" ve benzeri,

Bunu aklınızda tutun.
Saha seçimiUser AgentOperatör seçimicontainsdeğeri girinHeadlessChrome.
Bu noktada bir önizleme ifadesi göreceksiniz, bu da şöyledir:http.user_agent contains "HeadlessChrome"
Ardından işlemde seçim yapın.Managed ChallengeveyaJS Challenge.
- Seçmenizi öneririm.
Managed ChallengeÇünkü doğrulama yöntemi daha akıllı ve gerçek kullanıcılar üzerinde daha az etkiye sahip.
Son olarak, "Dağıt" düğmesine tıklayın ve bu kural küresel olarak yürürlüğe girecektir.
Cloudflare'ın dünya çapında ikinci seviye senkronizasyonla yapılandırılmış yüzlerce düğümü bulunmaktadır. Temel olarak, başsız tarayıcının trafiği düğmeye tıkladığınız anda engellenir.
Koruma ve gelişmiş önleme alanındaki kör noktalar
Ancak bir "ama" var.
Yalnızca User-Agent eşleştirmesi, varsayılan ayarlarla çoğu web tarayıcı yapılandırmasını çözebilir. Ancak, yetenekli tarayıcılara karşı yeterli değildir.
Chrome 110 ile başlayarak Google, yeni bir başsız mod (headless mode) tanıttı...--headless=newParametre başlatma. Bu modda, HeadlessChrome'un User-Agent'ı normal Chrome'unkiyle tamamen aynıdır ve aradaki farkı hiçbir şekilde anlayamazsınız.
Ayrıca aktif olarak taklit yapanlar da var. Web tarayıcı geliştiricileri, kodda User-Agent'ı doğrudan normal bir Chrome veya mobil tarayıcı tanımlayıcısıyla değiştirerek, en hassas kurallarla bile eşleştirmeyi imkansız hale getiriyorlar.
Bu durum için Cloudflare, etkinleştirilebilecek iki gelişmiş özellik daha sunmaktadır.
İlkine Tarayıcı Bütünlük Kontrolü denir.
Bu özelliği etkinleştirmek için Güvenlik → Ayarlar → Tarayıcı Bütünlük Denetimi bölümüne gidin ve anahtarı açın.

TLS parmak izleri aracılığıyla anormal trafiği tanımlar. Kullanıcı Aracısını ne kadar iyi gizlerseniz gizleyin, TLS parmak izi taklit edilemez.
İkinci mod ise Bot Dövüş Modu veya robot savaş modu olarak adlandırılıyor.
İzlenecek yol şu şekildedir: Güvenlik → Otomatik Programlar → Bot Dövüş Modu. Bu modun da etkinleştirilmesi gerekir.

Bu özellik, istek sıklığı, fare hareket yörüngesi, sayfada kalma süresi vb. gibi davranışsal özellikleri birleştirerek trafiğin botlara ait olup olmadığını belirler.
Ücretsiz sürüm, şüpheli botlara otomatik olarak yönetilen doğrulama yöntemlerini uygular; ücretli sürüm ise daha ayrıntılı kural yapılandırmasına olanak tanır.
Spam'lerden web tarayıcılarına kadar, saldırganlar ve savunucular arasındaki savaş hiç durmadı.
Konu açılmışken, birden aklıma bir şey geldi.
Aslında, bu tür saldırgan ve savunmacı çatışmalar internetin tarihi boyunca yaşanmıştır. İnternetin ilk dönemlerinde spam yaygınken de durum aynıydı; bir özelliği engellediğinizde gönderen onu değiştiriyordu. Anahtar kelime filtrelemesi kullandığınızda gönderen hassas kelimeleri parçalara ayırıyordu. Sıklık sınırlamaları kullandığınızda gönderen gönderme sıklığını azaltıyordu.
Günümüzde bu durum, web siteleri ve web tarayıcıları arasında bir savaşa dönüştü. Siz Kullanıcı Aracısı (User-Agent) filtrelemesi kullanıyorsunuz, karşı taraf ise Kullanıcı Aracısını taklit ediyor. Siz TLS parmak izi alma yöntemini kullanıyorsunuz, karşı taraf ise TLS parmak izlerini nasıl taklit edeceğini araştırmaya başlıyor.
Teknoloji değişebilir, ancak temel oyun teorisi mantığı asla değişmez.
Ancak çoğu web sitesi sahibi için önceki adımı yapmak yeterlidir.
Chrome'un başsız moddaki trafiğinin %80'i, kendilerini gizlemeye üşenen varsayılan yapılandırmalı tarayıcılardan geliyor; bu da tek bir WAF kuralıyla çözülebilir. Gelişmiş gizleme yöntemlerine sahip olanlar için ise, özellikle hassas verilerinizin korunması gerekmiyorsa, aşırı endişelenmenize gerek yok.
Gerekli tüm özellikleri etkinleştirdikten sonra, işiniz neredeyse tamamlanmış demektir.
Son olarak, bir şey daha eklemek istiyorum.
Birçok insan, web sitesi trafiği ne kadar fazla olursa o kadar iyi olduğuna inanır. Ancak, gerçek trafik ile botlar arasında ayrım yapamıyorsanız, bu yükselen rakamlar sadece gösteriş amaçlı ölçümlerdir. Hatta yargınızı yanıltarak, belirli bir içeriğin özellikle popüler olduğunu düşünmenize neden olabilirler; oysa bu sadece bir web tarayıcısının sayfanızı toplu olarak yüklemesinden kaynaklanıyor olabilir.
Trafiğin gerçek doğasını anlamak, trafik rakamlarının peşinden koşmaktan çok daha önemlidir.
Web sitesi işleten veya SEO yapan arkadaşlarınız varsa, bu makaleyi onlara iletmekten çekinmeyin. Birçok kişi web sitelerinin çok sayıda bot tarafından saldırıya uğradığının farkında olmayabilir ve bu sorunu çözmenin aslında oldukça basit olduğunu bilmeyebilir.
Buraya kadar okuduğunuza göre, eğer faydalı bulduysanız lütfen beğenin ve paylaşın. Güncellemeleri ilk öğrenmek istiyorsanız beni takip edebilirsiniz!
Makalemi okuduğunuz için teşekkür ederim. Bir sonraki yazıda görüşmek üzere.
Umarım Chen Weiliang'ın blogunda ( https://www.chenweiliang.com/ ) paylaşılan "HeadlessChrome'un Anormal Trafik Patlaması mı? Cloudflare'ın Bunu Tamamen Engellemek İçin 3 Adımlı Kılavuzu (WAF Kurallarıyla)" başlıklı makale size yardımcı olur.
Bu makalenin bağlantısını paylaşmaktan çekinmeyin: https://www.chenweiliang.com/cwl-34500.html
