Bu kontrol nasıl çalışır
Tarayıcınız bu sayfayı isterken her şeyden önce bir başlık bloğu gönderdi. Sunucumuz her birini yakaladı, adlarını küçük harfe çevirdi, alfabetik sıraladı ve istek yöntemi ve bağlantının kullandığı HTTP protokol sürümüyle birlikte yukarıdaki tabloya yazdı. Hiçbir şey filtrelenmez ve bizim tarafımızdan hiçbir şey eklenmez; tablo, isteğin bize ulaştığı hâlidir.
Anlamı bilinen başlıklar üçüncü sütunda bir not taşır. Proxy veya araç belirten başlıklar işaretlenir ve tablonun üstündeki özet onları ayrıca listeler, çünkü proxy kurulumu denetleyen biri için önemli olanlar bunlardır. Aynı veri JSON olarak da sunulur; bir betik veya komut satırı istemcisi ne gönderdiğini kolayca karşılaştırılabilir biçimde görebilir.
Sayfa bilerek sadedir. Başlıklar bir isteğin sunucudan gizlenemeyen tek parçasıdır; dolayısıyla liste aynı zamanda tarayıcı parmak izinizin pasif kısmıdır: bir sitenin tek satır betik çalıştırmadan her ziyaretten topladığı bilgi. Tarayıcı parmak izi testi bu pasif kümeyi hash’ler ve betikle toplanan sinyallerin yanında gösterir.
Sonucunuzu nasıl okumalısınız
Satırları işlevlerine göre gruplayın.
| Grup | Başlıklar | Ne açığa çıkarır |
|---|---|---|
| Kimlik | user-agent, sec-ch-ua, sec-ch-ua-mobile, sec-ch-ua-platform, sec-ch-ua-full-version-list ve diğer sec-ch-* | Tarayıcı ailesi, sürüm ve platform; user agent sayfası bunları ayrıştırır |
| Tercihler | accept, accept-language, accept-encoding | İçerik türleri, tercih sırasıyla dil listeniz, desteklenen sıkıştırma; dil listesi anonimlik puanında IP’nizin ülkesiyle karşılaştırılır |
| İstek bağlamı | host, referer, origin, sec-fetch-site, sec-fetch-mode, sec-fetch-dest, sec-fetch-user, upgrade-insecure-requests, priority | Hangi siteyi istediğiniz, hangi sayfanın sizi buraya bağladığı ve tarayıcının isteği nasıl sınıflandırdığı |
| Bağlantı | connection, te, cache-control, pragma | Keep-alive ve önbellekleme davranışı; çoğunlukla HTTP/1.1 dönemi |
| Gizlilik sinyalleri | dnt, sec-gpc | Etkinleştirdiyseniz Do Not Track ve Global Privacy Control; nadirdir, dolayısıyla ayırt edici bir özelliktir |
| Oturum | cookie | Yalnızca bu siteye ait çerezler |
| Proxy | via, x-forwarded-for, forwarded, x-real-ip, client-ip, x-proxy-id, proxy-connection, x-forwarded | Proxy yazılımı ekler; bazıları özgün IP’nizi taşır |
| Uç | cf-connecting-ip ve benzerleri | Sitenin önündeki bir CDN veya uç ağı ekler; ucun gördüğü adresi gösterir |
Harekete geçilecek satırlar proxy satırlarıdır. Tarayıcı bunları asla göndermez. Görünüyorlarsa tarayıcınızla sunucumuz arasında bir şey eklemiştir. X-Forwarded-For, Forwarded, X-Real-IP ve Client-IP çoğunlukla proxy’nin adına ilettiği istemcinin, yani sizin gerçek adresinizi içerir; değeri proxy kontrolünde gösterilen IP ile karşılaştırın ve farklıysa gerçek adresiniz ziyaret ettiğiniz her siteye veriliyordur. Via ve X-Proxy-ID adresinizi taşımaz ama bir proxy’nin varlığını duyurur; katı siteler bunu sinyal sayar. Anonimlik puanı bunlardan biri varsa 10 puan düşürür.
Referer ve origin bir siteye nereden geldiğinizi söyler. Adres çubuğuna yazılan yeni ziyarette referer yoktur; başka siteden bağlantı izlemek, yönlendiren sitenin politikasına göre kırpılmış adresini gönderir. Sec-Fetch-Site isteğin same-origin, same-site, cross-site veya kullanıcı tarafından başlatılmış olduğunu söyler; siteler bunu gömmeyi ve siteler arası istekleri tespit etmek için kullanır.
Accept-Language göründüğünden daha açıklayıcıdır. Yapılandırdığınız dilleri bölgesel çeşitleriyle tercih sırasına göre listeler. IP’nin ülkesi için olağan dışı bir dille başlayan liste yumuşak bir uyumsuzluktur; ilk sırada İngilizce her yerde kabul edilir. Değer aynı zamanda parmak izi girdisidir, çünkü tam liste ve sıra kişiden kişiye değişir.
Client hint’ler yalnızca Chromium tarayıcılarda görünür. Düşük entropili olanlar, markalar, mobil bayrağı ve platform, her istekle gönderilir. Tam sürüm listesi, mimari, bit genişliği ve model gibi yüksek entropili olanlar yalnızca bir site önceki yanıtta istediyse gönderilir; burada gördüğünüz varsayılan kümedir.
Do Not Track ve Global Privacy Control az sayıda site tarafından dikkate alınır ve az kişi etkinleştirdiği için varlıkları tarayıcıyı biraz daha ayırt edici kılar. Bu onlara karşı bir argüman değil, parmak izi okurken bilinmesi gereken bir gerçektir.
Nasıl düzeltilir
Proxy başlıkları var
- Kaynağı belirleyin. Tarayıcıda veya sistemde proxy ayarladıysanız o proxy’dir. Hiçbir şey ayarlamadıysanız ve Via veya X-Forwarded-For görüyorsanız İSS’niz veya ağınız saydam bir proxy ya da önbellek çalıştırıyordur; mobil operatörlerde ve ofislerde yaygındır.
- Denetlediğiniz bir proxy’yi başlık eklemeyen, genellikle elite veya yüksek anonimlik denen moda alın. Ticari proxy için sağlayıcıdan elite port veya farklı havuz isteyin; davranış tarayıcıya değil proxy’ye bağlıdır.
- Saydam İSS proxy’si için çözüm VPN’dir: tünel isteklerinizi yalnızca şifreli trafik gören proxy’nin yanından geçirir.
- Bu sayfayı yeniden yükleyin. Proxy özeti yok demeli ve anonimlik puanındaki proxy satırı geçmelidir.
Kurulumun geri kalanıyla çelişen başlıklar
- Bir platform adlandıran user agent ile başka platform adlandıran sec-ch-ua-platform, bir eklentinin veya profilin birini yeniden yazdığı anlamına gelir. Geçersiz kılmayı kaldırın ya da ikisini birlikte ayarlayan bir profil kullanın.
- IP’nin ülkesine uymayan Accept-Language tarayıcının dil ayarlarından düzeltilir: Chrome ve Edge’de Ayarlar, Diller; Firefox’ta Ayarlar, Genel, Dil; Safari Sistem Ayarları’ndaki sistem dil listesini izler.
Referer açığa çıkması
- Geldiğiniz sayfayı başka sitelere göndermeyi durdurmak için tarayıcının referrer politikasını güncel tarayıcıların varsayılanı olan strict-origin-when-cross-origin değerine ya da bir eklentiyle veya Firefox’un about:config’teki network.http.referer ayarlarıyla no-referrer değerine getirin. Site sahipleri kendi giden bağlantıları için Referrer-Policy başlığı ayarlayabilir.
Geliştiriciler ve betikler için
- Hangi başlıkları gönderdiğini tam olarak görmek için bu sayfanın JSON sürümünü aracınızdan isteyin. Tarayıcı user agent’ı iddia eden ama Accept-Language, Sec-Fetch başlıkları ve client hint göndermeyen bir betiği bir site tarayıcıdan kolayca ayırır.
- Başlıkları istemcinizin seçenekleriyle, örneğin curl’de -H bayrağıyla, açıkça ekleyin ve JSON çıktısını öncesi ve sonrasıyla karşılaştırın.
Bu kontrolün sınırları
- Yalnızca sunucumuza ulaşanı görürüz. Sitenin önündeki bir CDN veya uç ağı, site görmeden önce başlıkları silebilir, yeniden yazabilir veya ekleyebilir. Burada gördüğünüz böyle bir katmanı olmayan bir kaynak sunucunun görünümüdür; en eksiksiz görünüm ama belirli bir sitenin aldığı olmayabilir.
- Yalnızca istek başlıkları. Sunucudan dönen yanıt başlıkları isteğin parçası değildir ve gösterilmez; tarayıcınızın geliştirici araçları ikisini de gösterir.
- Çerezler siteye bağlıdır. Yalnızca bu sitenin ayarladığı çerezler görünür ve ilk ziyarette hiç yoktur. Satır başka sitelerin hangi çerezleri tuttuğunu söyleyemez.
- Başlık sırası kaybolur. Okunabilirlik için alfabetik sıralarız. Bazı parmak izi sistemleri tarayıcılar arasında farklılaşan özgün başlık sırasını sinyal olarak kullanır; o sıra burada yeniden üretilmez.
- Şifreli aktarım başlıkları ağdan gizler, sunucudan değil. HTTPS yoldaki hiç kimsenin bu başlıkları okumasına izin vermez; ziyaret ettiğiniz sitenin okumasını engellemez. Bu sayfanın amacı da budur.
- Proxy tespiti başlık tabanlıdır. Başlık eklemeyen bir proxy bu kontrole görünmezdir; adresinin ağ türünü proxy kontrolü ve IP kontrolü kapsar.
Saydam proxy başlık sızıntısı nasıl görünür
Saydam proxy sizinle internet arasında durur, isteklerinizi kendi adresiyle iletir ve hedefin kimin sorduğunu kaydedebilmesi için özgün adresinizi X-Forwarded-For veya Forwarded başlığına yazar. Hedef iki adres görür: bağlantı kaynağı olarak proxy’ninkini ve başlıkta sizinkini. İSS’deki önbellek proxy’leri için bu zararsız bir kayıt tutmadır. Görünen konumunuzu değiştirmek için satın aldığınız bir proxy’de ise amacı tamamen boşa çıkarır, çünkü dikkatli bir sitenin okuduğu ilk şey o başlıktır. Proxy başlıkları sözlük maddesi her başlığı, kimin eklediğini ve hangi değeri taşıdığını listeler.
Başlık listesi tarayıcılar arasında neden farklı
Her tarayıcı motorunun kendi varsayılanları vardır: hangi Accept türlerini listelediği, client hint gönderip göndermediği, hangi Sec-Fetch başlıklarını eklediği, Accept-Language’i nasıl biçimlendirdiği, HTTP/2 veya HTTP/3’te priority başlığı gönderip göndermediği. Sürümler bunları zamanla değiştirir. Farklar, sunucunun user agent kaldırılmış olsa bile yalnızca başlık kümesinden tarayıcı ailesini genellikle adlandırabileceği kadar büyüktür. User agent’ı yeniden yazmanın başka bir tarayıcı gibi görünmeye yetmemesinin ve tarayıcı parmak izi sayfasında pasif parmak izinin betikle toplanandan ayrı hash’lenmesinin nedeni budur.
Betikten veya komut satırından başlık okumak
Bir kazıyıcı, izleme aracı veya entegrasyon bakımı yapıyorsanız bu sayfanın JSON çıktısı ne gönderdiğinizi görmenin en hızlı yoludur. Aracı application/json Accept başlığıyla bu sayfaya yönlendirin ve sonucu bir tarayıcının gönderdiğiyle karşılaştırın: tarayıcı tanınabilir bir kalıpta bir düzine başlık gönderir, çıplak istemci iki üç tane. Erişimi tarayıcı gibi görünmeye bağlayan siteler tam olarak bu farka bakar. Dürüst araçlar bir tarayıcıyı eksik taklit etmek yerine kendilerini açıkça tanıtıp hız sınırlarına uymakla daha iyi eder.