Merhaba sevgili arkadaşlar. Bugün tarayıcı parmak izlerinden biri olan Client Rects hakkında konuşacağız. Kullanıcılar ilk kez 2016 yılında bu parmak izi hakkında konuşmaya başladılar; çünkü o zaman browserleaks kontrol aracında bunu kontrol etmenin basit bir yolu ortaya çıktı. O zamanlar bu parmak izini değiştirmek zor görünmüyordu. Ancak bu parmak izini doğal bir şekilde değiştirmek ve tespiti imkansız hale getirmek, ilk bakışta göründüğünden çok daha zordur. Bugün bile, pazardaki çoğu popüler çözüm bu parmak izini düzgün ve etkili bir şekilde değiştiremiyor.
Öncelikle, Client Rects'in ne olduğunu basit bir dille açıklamak faydalı olacaktır. Client Rects, bir web sayfasındaki öğelerin konumu ve boyutu hakkında bilgi edinilmesini sağlayan bir tarayıcı teknolojisidir.
Bu öğeler farklı türde olabilir: metin giriş alanı, düğme (buton), açılır menü, tablo ve diğer HTML nesneleri.
Boyut bilgisi, öğenin genişliğini ve yüksekliğini piksel cinsinden içerir.
Konum bilgisi, öğenin üst sol köşesinin (sol veya X; üst veya Y) ve alt sağ köşesinin (sağ ve alt) koordinatlarını, tarayıcıdaki web sayfasının görünür alanına (viewport) göre içerir.
Bu bilgilerin toplanmasına 'rects' (dikdörtgenler) denir. Aşağıdaki görselde bunu daha net görebilirsiniz.

Şimdi Client Rects parmak izinin nasıl toplandığını daha ayrıntılı analiz etmek için browserleaks.com[https://browserleaks.com/rects] kontrol aracına bakalım.

Bu site, parmak izi oluşturmak için üç öğe kullanır (String 1, String 2, String 3). Sayfayı açtıktan sonra, Browserleaks bu öğelerin boyutu (genişlik, yükseklik) ve konumu (x/sol, y/üst, sağ, alt) hakkında bilgi toplar. Gördüğünüz gibi, bu değerler tam sayılara değil, virgülden sonra 16 haneye kadar hassas değerlerdir.
Gerekli veriler toplandıktan sonra Browserleaks her bir öğenin bilgilerini işler ve bir hash’e dönüştürür (Hash String 1, Hash String 2, Hash String 3). Ardından bu üç hash birleşerek bir tam hash oluşturur (Full Hash) – bu da Client Rects parmak izi olur.
Bu, bir Client Rects parmak izinin nasıl oluşturulduğuna dair en basit örneklerden biridir. Örneğin, https://privacycheck.sec.lrz.de/active/fp_gcr/fp_getclientrects.html kontrol aracı daha karmaşık bir yöntemi kullanır ve çeşitli HTML öğelerini dahil eder. Modern anti-fraud sistemleri çok daha gelişmiş yöntemlerle bu parmak izini toplayabilir, veritabanlarıyla karşılaştırabilir ve diğer izleme teknolojileri ve IP adresleriyle birleştirerek kullanıcıyı tanıyabilir ve çoklu hesapları engelleyebilir.
Anti-fraud sistemlerinin bu parmak izini çoklu hesapları engellemek, kullanıcıları izlemek ve tanımak için kullanabilmesinin ana nedeni, bu parametrelerin değerlerinde cihazlar arasında küçük farklar olmasıdır. İki farklı bilgisayarda Client Rects kontrol aracını açarsanız, üç öğe görsel olarak aynı görünse de, parametre değerleri farklı olacaktır ve bu da üç hash ve tam hash’in de farklı olmasına neden olur. Pikselin yüzbinde biri kadar küçük bir fark bile parmak izini değiştirebilir.
İki farklı Windows 10 cihazında Google Chrome tarayıcısında oluşturulan Client Rects parmak izi örneği:

Şimdi mantıklı bir soru ortaya çıkıyor: Hangi değişkenler iki cihazın bu parametreleri farklı göstermesine neden olabilir? Cevap basit – çok sayıda! Cihaz türü, işletim sistemi, işletim sistemi sürümü, ekran kartı, monitör, ekran çözünürlüğü, sistemdeki ölçeklendirme, tarayıcı türü, tarayıcı sürümü, tarayıcıdaki sayfa yakınlaştırma seviyesi, yazı tipleri – bunların tümü parametreleri ve parmak izini etkiler.
Google Chrome tarayıcısında somut bir örnek üzerinden gidelim: Mobil cihaz kullanıyoruz – bir parmak izi, dizüstü bilgisayar kullanıyoruz – başka bir parmak izi. 2K ekran bağlıyoruz – başka bir parmak izi, 4K ekran bağlıyoruz – yine değişiyor. Windows 10'dan 11'e geçiyoruz – değişiyor. Windows ölçeklendirmesini %100'den %125'e çıkarıyoruz – değişiyor. Tarayıcıyı dahili grafik kartıyla açıyoruz – bir parmak izi, harici ekran kartıyla açıyoruz – başka biri. Bu örnekler uzayıp gider.
Windows 10 altında Google Chrome tarayıcısında ölçeklendirme farklı olduğunda Client Rects parmak izi örneği:

Ayda onlarca, yüzlerce veya binlerce hesap oluştururken, her seferinde farklı cihazlar, ekranlar, grafik kartları almak veya sayfayı büyüteç olmadan okuyamayacak kadar küçültmek mantıklı değildir. Bu yüzden en iyi çözüm, parmak izlerini yüksek kalitede değiştiren ileri düzey teknolojilere sahip bir anti-detect tarayıcı kullanmaktır.
Client Rects parmak izini değiştirmek için iki temel yöntem vardır: tarayıcı eklentileri (uzantılar) ve anti-detect tarayıcılar. Şimdi her iki yönteme daha yakından bakalım.
Tarayıcı eklentileri kullanmak en basit yol olabilir. Ancak önemli dezavantajları vardır:
- Eklentinin tespit edilme olasılığı. Anti-fraud sistemleri, tarayıcıda hangi eklentilerin kurulu olduğunu belirleyebilir. Eğer parmak izi değiştiren bir eklenti tespit edilirse, bu sistemler için doğrudan kırmızı bayraktır.
- Düşük kalite parmak izi değişimi. Bu eklentilerde kullanılan teknoloji genellikle yetersizdir. Kalite ne kadar düşükse, tespit edilme ihtimali o kadar yüksektir.
- Engelleme yerine değiştirme yapılmaması. Bazı eklentiler parmak izi yerine Client Rects’i tamamen engeller – bu hem tespiti kolaylaştırır hem de sayfalarda görüntüleme sorunlarına neden olur.
Bu yöntem sadece ek güvenlik katmanı olarak kullanılabilir, fakat iş veya çoklu hesap işlemleri için önerilmez. Firefox'ta popüler eklentiler: CanvasBlocker, Trace, Chameleon; Google Chrome’da: ClientRects Fingerprint Defender, Trace.
Anti-detect tarayıcı kullanmak, Client Rects parmak izini değiştirmenin en iyi yöntemidir. Ancak ilk bulduğunuz ürünü kullanmak doğru değildir. En iyi sonuç için doğru yazılımı seçmek gerekir.
Genel olarak, eklentiler ve anti-detect tarayıcılar Client Rects hesaplamalarına 'gürültü' (görünmez piksel) ekler ve bu da öğelerin boyutunu az da olsa değiştirir – bu da genellikle anti-fraud sistemlerce fark edilir.
Yeni nesil Linken Sphere tamamen farklı bir yöntem kullanır – entegre yakınlaştırma teknolojisine dayanır. Bu, 10 oturumun 8’inde ideal parmak izi değişimi sağlar.
Bazen sıradan bir tarayıcıyla ve anti-detect tarayıcıyla alınan sonuçları karşılaştırmak, değişim kalitesini değerlendirmek için yeterlidir – derin teknik bilgiye gerek kalmaz.

Yukarıdaki ekran görüntüsünde Google Chrome, Linken Sphere 2 ve başka bir anti-detect tarayıcı ile browserleaks testinin sonuçları gösteriliyor. Öğelerdeki bozulmalar gözle görülür.
Değişim kalitesini kontrol etmek için CreepJS kontrol aracını öneriyoruz. Bu araç sadece tespiti değil, aynı zamanda değişimin kalitesini de değerlendirir. Ersätzung aktifken 'Browser' sekmesinde 'lies' öğesini bulun.

'lies' değeri 'none' olmalıdır – yukarıdaki ekran görüntüsünün sol tarafında gösterildiği gibi. Eğer değişim tespit edilirse, bu değer vurgulanır ve parantez içinde hata sayısı gösterilir. Değere tıklarsanız ayrıntılar görünür. Yaygın hatalar: 'Element.getClientRects:', 'Range.getClientRects:', 'Range.getBoundingClientRect:', 'DOMRect.height:', 'DOMRectReadOnly.top:' vb.
Client Rects değişiminin tespit edildiği durumda çıkan hata örneği:

Şimdi CreepJS kontrol aracında Linken Sphere 2 ile başka bir anti-detect tarayıcının sonuçlarını karşılaştıralım:

Bu kontrol aracı sayesinde Client Rects değişiminin tespit edildiğini kolayca görebiliriz. Ancak Linken Sphere bu sorunla karşılaşmaz.
Adil olmak gerekirse, Linken Sphere’in önceki sürümünün Client Rects değişimi konusunda mükemmel olmadığını belirtmek gerekir. Bu yüzden sadece zorunlu durumlarda kullanılması öneriliyordu.
Linken Sphere 2 ile Linken Sphere 9 arasında parmak izi değişimi karşılaştırması:

Sonuç olarak, parmak izi değişiminde sadece eşsiz olmak değil, tespit edilmemek önemlidir. Bunun için modern ve yenilikçi parmak izi değiştirme teknolojilerine sahip bir ürün gereklidir. O zaman istenilen sonuç gecikmeden gelecektir!