PowerScan
TR

WebGL işleyici dizeleri ve donanım sinyalleri: GPU'nuz hakkınızda ne kadar şey söylüyor

Tarayıcı parmak izleri · 6 dk okuma · yazan: PowerScan

Fotoğraf: Unsplash

Bir tarayıcının üzerinde çalıştığı donanım, sayfaya birkaç küçük yoldan sızar. Hiçbiri makinenin adını vermez, ancak birlikte onu çoğu diğerinden ayırt edecek kadar yakından tarif ederler.

İşleyici dizesi

WebGL, iki değer içeren WEBGL_debug_renderer_info adlı bir uzantı sunar: maskelenmemiş satıcı ve maskelenmemiş işleyici. Chromium ile Windows'ta işleyici tipik olarak şuna benzer bir şey okunur: ANGLE (NVIDIA, NVIDIA GeForce RTX 2060 SUPER (0x00001F06) Direct3D11 vs_5_0 ps_5_0, D3D11). Bu tek satır GPU satıcısını, tam modeli, PCI aygıt kimliğini, grafik API'sini ve gölgelendirici modelini verir; bu da işletim sistemi için güçlü bir ipucudur, çünkü bu dize yalnızca Windows'ta bulunur.

Firefox ve Safari bu dizeyi zaman zaman maskelemiş ya da genelleştirmiştir; Chromium ise açığa çıkarır. Onu maskeleyen bir tarayıcı genel bir değer döndürür ve bir tanı sayfası tahmin yürütmek yerine "işleyici bilgisi maskelenmiş" gösterir.

Sayılar ve boyutlar

navigator.hardwareConcurrency mantıksal CPU iş parçacığı sayısını döndürür. navigator.deviceMemory küçük bir değer kümesine yuvarlanmış ve Chromium'da 8 ile sınırlandırılmış yaklaşık bir RAM miktarı döndürür; yani 32 GB'lık bir makine 8 bildirir. screen.width ve screen.height ekran boyutunu verir, availWidth ve availHeight görev çubuğunu çıkarır, devicePixelRatio ise ölçeklemeyi ele verir. screen.colorDepth neredeyse her zaman 24'tür. navigator.maxTouchPoints dokunmatik aygıtları diğerlerinden ayırır.

Bunlardan bazılarının tanımlama gücü, göründükleri kadar masum olmaktan uzak ölçüde yüksektir. İş parçacığı sayısının yalnızca bir avuç yaygın değeri vardır, ancak tanınmış bir ticari parmak izi hizmetinin ağırlıklı olarak kullandığı alanlardan biridir, tam da ucuz ve kararlı olduğu için. Piksel oranı ve kullanılabilir yükseklikle birleşen ekran boyutu, bir makineyi bir user agent'tan daha fazla daraltır.

Medya aygıtları

navigator.mediaDevices.enumerateDevices() sistemin sahip olduğu kameraları, mikrofonları ve hoparlörleri döndürür. İzin olmadan modern tarayıcılar türleri ve sayıları döndürür, ancak etiketleri boş bırakır; böylece bir sayfa "bir kamera, bir mikrofon, bir çıkış" öğrenir, fazlasını değil. Herhangi bir siteye erişim vermek etiketleri açığa çıkarır. Yalnızca sayıları gösteren bir tanı sayfası, izni olmayan bir sayfanın davranacağı gibi davranıyordur.

Yine tutarlılık açısı

Donanım sinyalleri, taklidin en sık yanlış gittiği yerdir. NVIDIA Direct3D işleyicisi, 24 iş parçacığı ve 1366×768 ekranı olan bir MacBook iddia eden bir profil, var olmayan bir makineyi tarif eder. Siteler bunu fark etmek için bir veritabanına ihtiyaç duymaz; birkaç kural yakalar. Bir profil bu değerlerden herhangi birini değiştiriyorsa, hepsini gerçek bir aygıtın gerçekten geldiği bir kombinasyona değiştirmeli ve ziyaretler arasında öyle tutmalıdır.

Nelere bakmalı

İşleyici dizesini okuyun ve user agent'taki işletim sistemiyle eşleşip eşleşmediğini sorun. Ekran boyutunu okuyun ve piksel oranı ile kullanılabilir yükseklikle eşleşip eşleşmediğini sorun. İş parçacığı sayısını ve belleği okuyun ve bu çiftin o GPU için makul olup olmadığını sorun. Bir tanı sayfası bunları tam da bu amaçla yan yana sergiler; yargı sizindir.

Tüm makaleler · Taramayı başlat