Bir parmak izi ortamının “gerçek” olup olmadığı, herhangi bir tespit sitesinin verdiği puana değil; ağ, tarayıcı, sistem, donanım ve izin sinyallerinin birbiriyle tutarlı olmasına ve birden çok başlatmada istikrarlı kalmasına bağlıdır. Bu makale; katman katman tespit yöntemi, yaygın anormallik karşılaştırma tablosu ve parmak izi tarayıcısında adım adım sorun giderme önerileri sunar.
Bir parmak izi tarayıcı ortamının gerçek olup olmadığı, yalnızca bir tespit sitesinin 90 ya da 100 puan vermesine bakılarak anlaşılamaz. Daha anlamlı ölçütler şunlardır: ağ, tarayıcı, işletim sistemi, donanım ve izin sinyalleri arasında belirgin bir çelişki bulunmaması; aynı ortamın birden çok kez başlatıldığında istikrarlı kalması; ve iş sitelerinin ihtiyaç duyduğu işlevlerin normal çalışması.
Tespit aracının yeşil göstermesi, her platformun bu ortamı kabul edeceği anlamına gelmez; kırmızı göstermesi de ortamın kullanılamayacağı anlamına gelmez. Tespit siteleri kendi kurallarını, veri tabanlarını ve puanlama modellerini kullanır; bu nedenle nihai değerlendirme, belirli alanlar, hedef site ve gerçek iş senaryosu birlikte ele alınarak yapılmalıdır.
“Gerçek” bir tarayıcı ortamı ne demektir
Makul bir ortam genellikle dört koşulu karşılar:
- İç tutarlılık: tarayıcı çekirdeği, User-Agent, işletim sistemi, GPU, dil, saat dilimi ve ağ bölgesi birbirini açıklayabilir;
- Zamansal istikrar: yeniden başlatma sonrasında kritik parametreler düzensiz biçimde büyük ölçüde değişmez;
- İşlevsellik: giriş yapma, dosya yükleme, görüntülü görüşme, ödeme veya reklam paneli gibi gereken işlevler normal çalışır;
- Kaynağın izlenebilirliği: ekip, bu ortamın hangi hesaba, proxy’ye ve sorumluya bağlı olduğunu bilir ve yapılandırma değişiklikleri kayıt altına alınır.
“Her parametrenin fiziksel bilgisayarla birebir aynı olması” zorunlu bir koşul değildir. Tarayıcı, gizliliği korumak için veri hassasiyetini zaten düşürür. Örneğin MDN’nin deviceMemory açıklaması, bu özelliğin yalnızca yuvarlanmış ve alt-üst sınırlara kırpılmış yaklaşık bir bellek değeri döndürdüğünü belirtir; hardwareConcurrency da cihazdaki gerçek mantıksal işlemci sayısından düşük olabilir. Dolayısıyla tespit edilen değer, donanım inceleme raporu değildir.
Tespitten önce bir temel çizgi oluşturun
Hâlihazırda kullanılan önemli hesap ortamlarında parametreleri tekrar tekrar değiştirmeyin. Önce iş hesaplarına giriş yapılmayan bir test ortamı oluşturun ve şunları kaydedin:
- parmak izi tarayıcısının sürümü ve Chromium çekirdeği;
- işletim sistemi, User-Agent ve çözünürlük;
- proxy türü, çıkış IP’si, ülke ve şehir;
- dil, saat dilimi ve coğrafi konum ayarları;
- WebRTC, DNS, Canvas, WebGL ve yazı tipi politikaları;
- yüklü uzantılar ve başlatma parametreleri.
Aynı anda iki ya da üç tespit aracını çapraz olarak kullanın ve sonuçları ekran görüntüsü alarak ya da dışa aktararak saklayın. Ardından her seferinde yalnızca bir değişkeni değiştirip temel çizgiyle karşılaştırın. Böylece anormalliğin proxy’den mi, tarayıcı yapılandırmasından mı, uzantılardan mı yoksa tespit sitesinin kendisinden mi kaynaklandığını anlayabilirsiniz.
Birinci katman: ağ çıkışını kontrol edin
Önce HTTP isteklerinde görünen genel IP adresinin, ortama bağlı proxy IP’si olup olmadığını doğrulayın; ardından DNS, WebRTC ve IPv6’yı kontrol edin.
IP ve DNS
Çıkış IP’sini, ASN’yi, ISS’yi, ülkeyi, şehri ve saat dilimini kaydedin. Farklı veri tabanları şehir ve proxy türü konusunda tutarsız sonuçlar verebilir; ülke veya ASN çakışması, tek bir şehirdeki sapmadan daha öncelikli olarak incelenmelidir.
DNS istekleri yerel ağ üzerinden giderken web erişimi proxy üzerinden yapılıyorsa, tespit sitesi DNS bölgesi ile çıkış bölgesini farklı gösterebilir. Öncelikle proxy’nin uzak DNS destekleyip desteklemediğini, tarayıcıda veya sistemde ayrı bir DNS ayarı olup olmadığını ve uzantıların ağ isteklerini değiştirip değiştirmediğini kontrol edin.
WebRTC
WebRTC, eşler arası (peer-to-peer) bağlantı kurmak için ICE aday adreslerini toplar. RFC 8828, bunun ek genel adresleri veya özel adresleri açığa çıkarabileceğini ya da proxy doğrudan bağlantıya izin verdiğinde proxy’yi atlayarak gerçek genel IP adresini ortaya çıkarabileceğini açıklar.
Özel bir adresin tespit edilmesi, gerçek genel IP’nin sızdığı anlamına gelmez; 192.168.x.x, 10.x.x.x gibi adresler yalnızca yerel ağ adresleridir. Asıl dikkat edilmesi gereken, ICE adaylarında proxy çıkışıyla ilgisi olmayan başka bir genel IP adresinin görünüp görünmediğidir.
WebRTC’yi her durumda mekanik biçimde devre dışı bırakmayın. Görüntülü konferans, sesli görüşme ve gerçek zamanlı iletişim buna bağımlı olabilir. İş ihtiyacına göre seçim yapın: WebRTC’nin varsayılan proxy yolunu izlemesini sağlayın, UDP veya TURN destekleyen bir proxy kullanın, yerel adreslerin açığa çıkmasını sınırlandırın ya da gerçek zamanlı iletişim gerekmiyorsa WebRTC’yi kapatın. Değişiklik sonrasında hem gizlilik sonuçlarını hem de iş işlevlerini test edin.
Coğrafi konum
Tarayıcının Geolocation API’sinden gelen koordinatlar GPS, Wi-Fi, IP, hücresel ağ veya kullanıcı girdisinden kaynaklanabilir. W3C Geolocation belirtimi, API’nin cihazın gerçek konumunu döndürmeyi garanti etmediğini açıkça ifade eder.
Dolayısıyla IP şehri ile coğrafi konum koordinatları arasındaki küçük farklılıklar anormallik olmayabilir. Daha önemli olan; ülke, saat dilimi, dil ve iş bölgesi arasında açıklanamayan çelişkilerin bulunup bulunmadığı ve sitenin konum iznini alıp almadığıdır.
İkinci katman: tarayıcıyı ve işletim sistemini kontrol edin
Özellikle şu kombinasyonları karşılaştırın:
- Chromium çekirdek sürümü ile User-Agent içindeki tarayıcı ana sürümü;
- User-Agent içindeki işletim sistemi ile
platform, UA Client Hints ve yazı tipi kümesi; - tarayıcı arayüz dili,
Accept-Language, saat dilimi ve bölge biçimi; - çözünürlük, cihaz piksel oranı, pencere boyutu ve dokunmatik özellikleri;
- mobil cihaz tanımlamaları ile ekran boyutu, işaretçi türü ve donanım özellikleri.
Yaygın anormalliklerden biri, User-Agent’in elle değiştirilmesine rağmen çekirdek veya istemci ipuçlarının eşitlenmemesidir; bir diğeri ise ortamın macOS olarak ayarlanmasına rağmen Windows’a özgü yazı tipleri, GPU ve etkileşim özelliklerinin korunmasıdır.
En güvenli yöntem, değerleri tek tek elle uydurmak yerine; çekirdek, UA, platform ve ilgili parametreleri tek bir grup olarak güncelleyen doğrulanmış sistem ön ayarlarını kullanmaktır. Çekirdek güncellendikten sonra User-Agent’i yeniden üretin veya kontrol edin; belirgin biçimde eski kalmış sürümleri uzun süre sabitlemeyin.
Üçüncü katman: donanım ve işleme sinyallerini kontrol edin
Canvas, WebGL, AudioContext, yazı tipleri, CPU, bellek, medya cihazları ve ClientRects ortam tanımlamasında rol oynayabilir. Kontrol sırasında tek bir benzersiz hash kovalamak yerine “kombinasyonun makul olup olmadığına” ve “istikrarlı olup olmadığına” odaklanın.
WebGL ve GPU
Ortam belirli bir işletim sistemini veya cihazı iddia ediyor, ancak WebGL üreticisi, işleyici (renderer) ve donanım hızlandırma durumu aynı anda açıkça imkânsız bir kombinasyon oluşturuyorsa, sistem ön ayarlarına dönüp kontrol edin. Yalnızca bir tespit sitesini geçmek için üretici adını gelişigüzel başka bir markayla değiştirmeyin; hatalı kombinasyonlar genellikle daha fazla çelişki doğurur.
CPU ve bellek
hardwareConcurrency, tarayıcının kullanabileceği mantıksal işlemci sayısını temsil eder; tarayıcı daha düşük bir değer bildirmeyi tercih edebilir. deviceMemory ise yuvarlanmış yaklaşık bir değerdir. “4 çekirdek” ya da “8 GB” görmek gerçek donanımı ortaya çıkarmaz; fiziksel bilgisayarla uyuşmadığı için hemen değişiklik yapılması da gerekmez.
Kontrol edilmesi gerekenler: değerin tarayıcının desteklediği aralıkta olup olmadığı, mobil/masaüstü cihaz türüyle belirgin biçimde çelişip çelişmediği ve aynı ortamın yeniden başlatma sonrasında makul ölçüde istikrarlı kalıp kalmadığı.
Canvas ve ses
Gizlilik koruması veya parazit (noise) politikaları, aynı fiziksel cihazın farklı ortamlarda farklı sonuçlar üretmesine yol açabilir. Ancak aynı ortamda hash her yenilemede değişiyorsa, rastgeleleştirmenin fazla güçlü olduğu ve uzun süreli oturumların istikrarının bozulduğu anlamına gelebilir.
Aynı ortamı art arda yenileyerek, kapatıp yeniden açarak ve ertesi gün başlatarak test edin. Politika “ortam düzeyinde istikrarlı parazit” olarak tasarlandıysa, aynı ortam açıklanabilir bir süreklilik göstermelidir.
Dördüncü katman: depolamayı, uzantıları ve başlatma parametrelerini kontrol edin
Ortam izolasyonu yalnızca parmak izi parametrelerini değil; çerezleri (cookie), Local Storage, IndexedDB, önbelleği, Service Worker’ı, uzantıları ve indirme geçmişini de kapsar.
İki test ortamıyla farklı test sitelerine giriş yaparak çerezlerin ve yerel depolamanın birbirine karışmadığını doğrulayın; ardından önbellek temizlendikten, çerez içe aktarıldıktan veya ortam geri yüklendikten sonra verilerin beklenen gibi olup olmadığını kontrol edin.
Uzantılar yaygın bir karışma kaynağıdır. User-Agent, proxy, istek başlıkları, Canvas, WebRTC veya sayfa betiklerini değiştirebilirler. Anormallik fark ettiğinizde önce test kopyasında zorunlu olmayan tüm uzantıları devre dışı bırakın, ardından tek tek etkinleştirin. Özel başlatma parametreleri de tek tek elenmelidir; böylece birden fazla aracın aynı sinyali aynı anda değiştirmesinin önüne geçilir.
Yaygın anormallikler ve çözüm önerileri
| Anormallik | Olası neden | Önerilen çözüm |
|---|---|---|
| IP ülkesi ile saat dilimi uyumsuz | Saat dilimi yerel değere sabitlenmiş veya proxy bölgesi hatalı tanınmış | Önce proxy ülkesini doğrulayın, ardından saat dilimini IP’yi izleyecek ya da gerçek iş bölgesine göre ayarlayın |
| HTTP çıkışı ile WebRTC genel IP’si farklı | WebRTC doğrudan bağlanıyor, proxy UDP desteklemiyor veya yönlendirme ayrışıyor | WebRTC yönlendirme politikasını ayarlayın; UDP/TURN ve iş işlevlerini test edin |
| UA sürümü çekirdekle uyumsuz | Elle girilen UA çok eski veya çekirdek güncellemesinden sonra eşitlenmemiş | Eşleşen ön ayarı kullanın, UA’yı yeniden üretin ve UA Client Hints’i tekrar test edin |
| macOS tanımlaması ile Windows yazı tipi/GPU | Yalnızca yüzeysel alanlar değiştirilmiş | Sistem düzeyindeki ön ayarlara dönün; sistemler arası elle birleştirmeden kaçının |
| Canvas her yenilemede değişiyor | Rastgele parazit çok güçlü veya uzantı çakışması var | Ortam düzeyinde sabit bir politika belirleyin; çakışan uzantıyı devre dışı bırakıp yeniden test edin |
| CPU veya bellek kırmızı işaretleniyor | Tespit sitesi yuvarlanmış değerleri fiziksel donanım olarak yorumluyor | Önce tarayıcı API tanımını inceleyin, ardından gerçek bir kombinasyon çelişkisi olup olmadığını değerlendirin |
| İki tespit sitesi zıt sonuçlar veriyor | Veri tabanları, kurallar ve güncelleme hızları farklı | Yalnızca toplam puanı değil ham alanları karşılaştırın; hedef iş testini esas alın |
| Ortam yeniden başlatılınca kritik alanlar değişiyor | Rastgele yapılandırma kalıcı hale getirilmemiş veya ortam yeniden oluşturulmuş | Kaydetme, eşitleme ve rastgele parmak izi politikasını kontrol edin; ortam düzeyi parametrelerini sabitleyin |
PurpleMark içinde katman katman sorun giderme
Önceki bulgular normal görünüyor ancak bazı platformlar hâlâ anormallik bildiriyorsa, sorun giderme adımlarını PurpleMark’taki ilgili ortama taşıyabilirsiniz.
İlk adım, çıkışı doğrulamaktır. PurpleMark’ın proxy yönetiminde geçerli ortama bağlı proxy’yi inceleyin; çıkış IP’sini, bölgesini ve saat dilimini doğrulayın, tespit sitesinin gösterdiği genel IP ile karşılaştırın ve ardından WebRTC’de çıkışla ilgisi olmayan başka bir genel adresin görünüp görünmediğini kontrol edin.
İkinci adım, parametreleri tek tek elle değiştirmek yerine bir bütün olarak ele almaktır. PurpleMark’ta ortam oluştururken işletim sistemi, Chromium çekirdeği, User-Agent, dil, saat dilimi ve coğrafi konumu tek seferde ayarlayabilir; WebGL, WebRTC, CPU, bellek, Canvas gibi parmak izi parametrelerini yapılandırabilirsiniz. Çekirdek, UA, işletim sistemi ve yazı tiplerinin aynı ön ayar üzerinden ilerlemesi, “macOS tanımlamasıyla Windows yazı tipleri” gibi çelişkili sonuçların önüne geçer; ortamı kaydetmeden önce önizlemeyi inceleyip alan kombinasyonunun makul olduğunu doğrulayın, ardından kaydedip kullanın.
Üçüncü adım, güvenli biçimde deneme yapmaktır. Sorunlu ortamı bir test kopyası olarak çoğaltın; hâlihazırda kullanılan ortamda sürekli değişiklik yapmayın. Her seferinde yalnızca bir değişkeni ayarlayın — örneğin önce proxy veya WebRTC yolunu, sonra Canvas parazit politikasını değiştirin — her değişiklikten sonra tespit sonucunu kaydedin, istikrarı doğrulamak için ortamı iki kez yeniden başlatın ve ardından hedef sitede gerçek iş akışını bir kez daha çalıştırın. Uzantıların karışmaya yol açtığından şüpheleniyorsanız, kopyada uzantıları tek tek etkinleştirerek inceleyin.
Bu adımlar; aynı yapılandırma içinde çıkışı, parametre kombinasyonlarını ve istikrarı doğrulamanıza yardımcı olur ve “tespit sonucunun hangi katmandan geldiğini” bulmayı kolaylaştırır. Belirtmek gerekir ki PurpleMark, parametrelerin tutarlı kalmasını ve ortamın yeniden üretilebilir olmasını sağlar; nihai tespit sonucu yine de proxy kalitesine, tarayıcı sürümüne, uzantılara, ağ yönlendirmesine ve hedef sitenin kendi değerlendirme mantığına bağlıdır.
Mükemmel puan için yeni anormallikler yaratmayın
Tespit sitesi puanları ipucu bulmak için uygundur ancak tek hedef olmamalıdır. UA, GPU, Canvas, yazı tipleri ve saat dilimini sık sık değiştirmek ortamı eskisinden daha istikrarsız hale getirebilir; başkasının “tam puan alan parametrelerini” kopyalamak da onun ağını, donanımını ve kullanım geçmişini kopyalayamaz.
Doğru yaklaşım, ham alanlardan başlamaktır: önce belirgin çelişkileri düzeltin, ardından uzun vadeli istikrarı ve iş işlevlerini doğrulayın. Puanı en yüksek olmayan ancak kombinasyonu makul ve sürekli istikrarlı bir ortam, her tespitte değişen “tam puanlı ortamdan” genellikle çok daha yönetilebilirdir.


