Dijital parmak izi, web sitenize geri dönen bir kullanıcıyı tanımaya çalışmak veya aynı kullanıcıyı farklı web sitelerinde tespit etmek anlamına gelir. Sizin ayarlarınız ile başka kullanıcılarınkiler arasında birçok özellik farklı olabilir. Mesela cihaz türünden farklı bir ve farklı bir tarayıcı kullanıyorsanız, farklı ekran boyutlarına ve farklı yazı tiplerine sahip olmanız gerekir. "Dejavu Sans" yazı tipini kullanıyorum. ve yoksa herhangi bir web sitesi, o yazı tipinin olup olmadığını kontrol ederek aramızdaki farkı anlayabilir. İşte bu şekilde: dijital parmak izi tekniğinin nasıl çalıştığını gösterir; bu veri noktalarının bir koleksiyonunu oluşturursunuz ve her biri, kullanıcıları birbirinden ayırt etmek için daha fazla yol sağlar.
Daha resmi bir tanım şöyle görünebilir: Dijital parmak izi, bariz ve belirgin olmayan uzun ömürlü kimlik kullanma eylemidir mümkün olduğunca çok kullanıcıdan ayırt etmeye çalışmak için kullanıcının kurulumunun özelliklerini içerir.
Dijital parmak izi kullanıcı gizliliğini neden engeller?
Kullanıcılar için dijital parmak izinin önemli olduğu bazı uç durumlar vardır: Sahtekarlık algılama gibi. Ancak dijital parmak izi veya web sitelerinde kullanıcıları izlemek için kullanılır ve izleme işlemi çoğunlukla kullanıcıların rızası olmadan veya bazı durumlarda, kullanıcıyı yeterli düzeyde bilgilendirmeyen geçersiz iznin bir sonucu olabilir. Bu işlemi yaptığınızda, bu kullanıcılar genellikle ve ihanete uğradığını hissetmektir.
Dijital parmak izi, bir kullanıcıyı diğerinden gizlice ayırt etmenin yollarını bulmak anlamına gelir. Dijital parmak izi, bu durumun aynı web sitesinde hâlâ aynı kullanıcı olması veya aynı kullanıcıyı aynı anda iki farklı tarayıcı profilinde tanıması. Bu, dijital parmak izinin sitelerde kullanıcıları izlemek için kullanılabileceği anlamına gelir. Deterministik ve açık takip yöntemleri, kullanıcıya özgü benzersiz bir kimlikle depolamak gibi, kullanıcılar tarafından bir ölçüde gözlemlenebilir ve (ve önceki modülde bu yaklaşımların bazıları açıklanmıştı). Ancak dijital parmak izi alma işleminden tam olarak çünkü bu gizli. değişmeyen özelliklere dayanır ve büyük olasılıkla görünmez şekilde gerçekleşir. Adı bu yüzden "parmak izi". İster dijital parmak iziniz ister ucundakiler olsun, parmak izinizi değiştirmek en iyisidir parmaklarınızı.
Tarayıcı tedarikçi firmaları, kullanıcıların izlenmeyi sevmediğini bilir ve dijital parmak izini sınırlayan özellikleri sürekli olarak uygular (bunlardan bazılarını önceki modülde görmüştük). Bu makalede, bu özelliklerin işletmenizi nasıl etkileyebileceğini ele alıyoruz. yapmak istediğiniz şeyi gizliliği korumaya yönelik bir şekilde nasıl yapacağınızı da açıklayacağız. Bu konu, tarayıcı korumasının nasıl dijital parmak izi size parmak izi girmenizi nasıl durduracağından çok ne yaptığınızı ve nasıl yapıldığını etkiler.
Pratikte çoğu geliştirici ve işletme, kullanıcıların parmak izini almaya gerek yoktur. Uygulamanızda kullanıcıların oturum açması gerekiyorsa Kullanıcılarınız, rızalarını alarak ve tek taraflı olarak kapsam dışında kalmayı seçebilecekleri şekilde kendilerini size tanıtırlar. dilediği zaman gönderebilir. Bu, hangi kullanıcıların giriş yaptığını anlamaya yönelik gizliliği koruyan bir yöntemdir. Uygulamanız herhangi bir şekilde oturum açmalarını gerektirmeyebilir, bu da kullanıcılarınızın güvenliğini daha da (ve siz de son kullanıcılarınızın bilgilerini yalnızca ihtiyacınız olan verilere erişebilirsiniz).
Yapılması gerekenler
Üçüncü taraflarınızda dijital parmak izi alınıp alınmadığını kontrol edin. Üçüncü taraflar modülü kapsamında dahil ettiğiniz tüm üçüncü taraf hizmetlerinin ve yaptıkları web isteklerinin zaten bir listesi olabilir. Bu mümkün olabilir görmek için bu istekleri inceleyin. Ancak bu genellikle zordur; Dijital parmak izi, doğası gereği kullanıcı onayına tabi olmayan verilerin istenmesini içeren gizli bir süreçtir.
Dijital parmak iziyle ilgili belirtilere bakmak için üçüncü taraf hizmetlerinizin ve bağımlılıklarınızın gizlilik politikalarını da incelemeniz önerilir. kullanım durumu. Bu bazen "olasılık eşleştirme" olarak da adlandırılır. "deterministik eşleştirmeden" farklıdır.
Dijital parmak izi nasıl çalışır?
Tüm bu özelliklerin kişisel kombinasyonunuz genellikle size özeldir veya veya benzer kişilerden oluşan küçük bir gruba girebilir. bu bilgiler sizi gizlice takip etmek için kullanılabilir.
Bir yana: pasif ve aktif dijital parmak izi
Burada, pasif ve etkin dijital parmak izi teknikleri arasında önemli bir ayrım söz konusudur. Pasif dijital parmak izi teknik, web sitesine varsayılan olarak verilen bilgileri kullanan tekniktir; etkin bir dijital parmak izi tekniği, Bu kod, tarayıcıda ek bilgi olup olmadığını kontrol eder. Bu ayrım önemli olmasının nedeni, aktif teknikleri tespit edip müdahale etmeyi veya azaltmayı deneyebilir. API'ler kısıtlanabilir veya bir iletişim kutusuyla ağ geçidine eklenebilir kullanıcının iznini isteme (ve dolayısıyla kullanıcıya bunların kullanıldığı konusunda uyarıda veya kullanıcının bunları reddetmesine izin verme) varsayılan olarak). Pasif teknik, web sitesine halihazırda verilmiş olan verileri kullanan bir tekniktir. Çoğu zaman geçmişte bilgi otoyolunun yeni ortaya çıktığı günlerinde bu bilgiler tüm sitelere verilmişti. Kullanıcı aracısı dizesi ayrıntılı olarak inceleyeceğiz. O kadar çok bilgi sunma hususunda bir web sitesinin farklı reklamlar göstermesini sağlamak için kullanıcının tarayıcısı, sürümü ve işletim sistemiyle ilgili bilgiler buna göre çalışır. Ancak bu, kullanıma sunulan ayırt edici bilgilerin miktarını da artırır, Böylece bir kullanıcının diğerinde tanımlanmasına yardımcı olur. Bu nedenle, bu bilgiler gün geçtikçe daha fazla kullanılamamaktadır veya en azından dondurularak ön plana çıkarırız. Yapacağınız işlem bu bilgilere dayanıyorsa (örneğin, farklı bir web sitesi için kod dalları, kullanıcı aracısına göre değişir. Tarayıcılar giderek donuyorsa veya bu bilgileri durdurdukça bu kod bozulabilir. Testler burada en iyi savunmadır ( daha sonra bakın).
Bir yana: Dijital parmak izini ölçme
Bu veri noktalarının her birinin ne kadar bilgi sağladığına yönelik teknik ölçüm, entropi olarak adlandırılır ve bit cinsinden ölçülür. Birçok farklı olası değerin (yüklü yazı tipleri listesi gibi) bulunduğu bir özellik, Böylece, fazla ayırt edici gücü olmayan bir şeyin (örneğin, kullandığınız işletim sistemini) yalnızca birkaç örnek. HTTP Almanağı, mevcut dijital parmak izi alma işleminin nasıl kitaplıkları, farklı API'lerden gelen yanıtların bir "karma"da birleştirilmesiyle bu süreci otomatikleştirir. Bu işlem, küçük bir kullanıcı grubu, hatta belki de yalnızca bir tanesi. Maud Nalpas bunu bazı ayrıntılarıyla ele alıyor: bu YouTube videosunu kısa bir süre önce dinlediniz. Kısacası, bu videoyu izlediğiniz arkadaşlarınızın en sevdikleri müzikleri, en sevdikleri yemekleri ve konuştukları dilleri içeren bir liste... ama adlarıyla birlikte emin olun. Bir kişinin listesindeki kişiler arkadaşlarınız arasında benzersiz bir şekilde tanımlanabilir veya en azından ve listeye yalnızca birkaç kişiye eklendi. Dijital parmak izi bu şekilde çalışır; beğendiğiniz şeylerin listesi "karma" haline gelir. Entegre bağlantısı olmayan iki farklı sitede bir kullanıcıyı aynı kişi olarak tanımlamak daha kolay hale gelir. İzleme: Kullanıcının gizlilik isteğini atlatmak için.
Tarayıcılar dijital parmak izi alma işlemine karşı ne yapıyor?
Daha da önemlisi, tarayıcı sağlayıcıları bir web sitesine (veya web sitesine eklenmiş bir üçüncü tarafa) ilişkin birçok farklı yöntemin oldukça farkındadır. Kullanıcı için ayırt edici bir parmak izi hesaplaması veya benzersizliğe katkıda bulunmak amacıyla farklı bilgi parçalarının kullanılması olduğunu unutmayın. Bu yöntemlerden bazıları açık ve planlıdır. Örneğin, tarayıcının kullanıcı aracısı dizesinde genellikle kullanılan tarayıcıyı, işletim sistemini ve sürümü tanımlar (böylece Farklı tarayıcılar kullanıyorum). Bazı yollar kasıtlı olarak dijital parmak izi alınabilecek şekilde oluşturulmamış, ancak sonuçta Tarayıcı tarafından kullanılabilen yazı tipleri veya video ve ses cihazları gibi bir liste öğesi kullanabilirsiniz. (Tarayıcının bunu kullanması bu cihazların listesini alabilirsiniz.) Bazılarının ise parmak izi kuyusuna katkıda bulunduğu kabul edilmiştir. Örneğin, bir tuval öğesindeki yazı tiplerinin kenar yumuşatmasının tam olarak piksel oluşturulması gibi. Daha pek çok yöntem vardır ve tarayıcınızın benimkinden farklı olmasının her yolu entropi ekler ve dolayısıyla sizinle aramızdaki farkı anlamanın ve bir kişiyi web sitelerinde mümkün olduğunca benzersiz bir şekilde tanımlamanın bir yolunu sunuyor. https://amiunique.org adresinde, parmak iziyle katkıda bulunabilecek durumların uzun (ancak kesinlikle kapsamlı olmayan) bir listesi yer alıyor özellikleri vardır ve liste sürekli büyümektedir (çünkü kullanıcılar, geri kalan kullanıcıları takip edebilecekleri veya beklemeyin).
Belirli güçlü API'leri desteklemiyor
Tarayıcı tedarikçilerinin, kullanıcı parmak izini hesaplamaya yönelik tüm bu yaklaşımlara verdiği yanıt, dijital parmak izini azaltmanın yollarını bulmaktır. mevcut entropi miktarını artırır. En kısıtlayıcı seçenek, daha önce bunları uygulamamaktır. Bu işlem, bazı büyük tarayıcılar tarafından çeşitli donanım ve cihaz API'ları (örneğin, istemci tarafı web uygulamaları). Bu, elbette uygulamalarınızı ve hizmetlerinizi etkileyebilir: API'yi uygulamayan bir tarayıcıda hiçbir şekilde API kullanamazsınız ve bu durum, bazı donanım yaklaşımlarını değerlendirmeyi kısıtlayabilir veya tamamen ortadan kaldırabilirsiniz.
Kullanıcı izinleri ağ geçidi
Tarayıcı tedarikçi firmaları tarafından benimsenen ikinci yaklaşım ise bir tür açık kullanıcı izni olmadan API veya veri erişimlerini engellemektir. Bu yaklaşım genellikle güvenlik amacıyla da uygulanır. Bir web sitesinin web kameranızla fotoğraf çekememesi gerekir. izniniz olmadan! Ancak burada gizlilik ve güvenlik de benzer ilgi alanlarına sahip olabilir. Bir kişinin konumunu tanımlamak elbette gizlilik ihlalinin yanı sıra dijital parmak izinin benzersizliğine de katkıda bulunur. İzin gerekli bir konumun bu parmak izinin benzersizliğine kattığı ekstra entropiyi azaltmaz, ancak coğrafi konumun Dijital parmak izi artık görünmez şekilde yapılmadığından coğrafi konum belirlemenin kullanılması ortadan kalkar. Projenin tüm noktası Dijital parmak izi, kullanıcıların birbirinden gizlice ayırt edilebilmesini sağlar. Kullanıcının bunu bilmesine hazırlıklıysanız bunları tanımlamaya çalışıyorsanız dijital parmak izi tekniklerine ihtiyacınız yoktur: Kullanıcıdan bir hesap oluşturmasını ve giriş yapmasını isteyin. gerçekleşebilir.
Öngörülemezlik ekleme
Bazı durumlarda uygulanan üçüncü yaklaşım, tarayıcı tedarikçilerinin "fuzz" API'lerden gelen yanıtları daha az ayrıntılı hale getirmek için
ve bu nedenle daha az tanımlayıcı. Bu, veri modülündeki rastgele yanıt mekanizması kapsamında
ne yapabilirsiniz? Tarayıcı tedarikçi firmaları
, web uygulamaları ve üçüncü tarafların kullanımına sunulan API verileri için de bu yaklaşımı benimseyebilir. Buna örnek olarak
sayfa performansını ölçmek için çok doğru zamanlama API'leri
başlangıç fiyatı: window.performance.now()
. Tarayıcı bu değerleri bilir
hassasiyeti kasıtlı olarak en yakın 20 mikrosaniyeye yuvarlayarak azaltılır.
kullanımlarını önlemek için (ve saldırıları zamanlamaktan kaçınmaya yönelik güvenlik açısından) korumaları şart koşar. Burada amaç,
için API'lerin kullanışlı olmaya devam etmesini sağlamak, ancak yanıtları daha az tanımlayıcı yapmak, özünde "sürü bağışıklığı" sağlamak yapmak
cihazınız size özel olmaktan çok herkesin cihazına benzer. Safari, sistem yapılandırmasının basitleştirilmiş bir sürümünü sunar
tam da bu yüzden.
Gizlilik bütçesini zorunlu kılma
Gizlilik Bütçesi, tarayıcıların her bir dijital parmak izi yüzeyinin ortaya çıkardığı bilgileri tahmin etmesini öneren bir tekliftir. Henüz tarayıcılarda kullanıma sunulmadı. Amaç, kullanıcı gizliliğini korurken güçlü API'lere izin vermektir. Gizlilik bütçesi teklifi hakkında daha fazla bilgi edinin.
Geniş bir test ortamı kullanın
Tüm bunlar uygulama ve hizmet geliştirme şeklinizi etkiler. Özellikle de, çok çeşitli yanıtlar ve yaklaşımlar söz konusudur. ve platformlardan daha iyi anlayacaksınız. Bu nedenle, çalışmanızı birden fazla farklı ortamda test etmenin kritik olduğu anlamına gelir. Bu, elbette her zaman önemlidir, ancak HTML oluşturmanın veya CSS'nin belirli bir süre için oluşturma motoru, arama motorunun hangi tarayıcıda veya platformda bulunduğuna bakılmaksızın (yani yalnızca tek bir tarayıcıda test etmek Örneğin, Blink tabanlı tarayıcı). Bu durum API kullanımı için kesinlikle geçerli değildir çünkü ortak bir oluşturma motoru, API yüzeylerini dijital parmak izine karşı sağlamlaştırma yöntemlerinde önemli ölçüde farklılık gösterebilir.
Yapılması gerekenler
- Test sırasında öncelik vermeniz gereken tarayıcı grubunu yönlendirmek için kendi analizlerinizi ve kitlenizi inceleyin.
- Firefox, Chrome, Edge, masaüstünde Safari, Android'de Chrome ve Samsung Internet, ve iOS'te Safari. Bu, üç ana oluşturma motorunda (Firefox'ta Gecko, çeşitli Blink çatalları) test etmenizi sağlar Safari'de Webkit) ve hem mobil hem de masaüstü platformlarda kullanılabilir.
- Siteniz tabletler, akıllı saatler veya oyun konsolları gibi daha az kullanılan cihazlarda da kullanılıyor olabilirse bu cihazlarda da test edin. Bazı donanım platformları, tarayıcı güncellemeleri için mobil ve masaüstünün gerisinde kalabilir. Bu durum, bazı API'lerin henüz uygulanmamış veya tarayıcılarda mevcut olmayabilir.
- Motivasyon amaçlı kullanıcı gizliliği olduğunu iddia eden bir veya daha çok tarayıcıyla test yapın. Yaklaşan yayın öncesi ve test sürümlerini dahil et en sık kullandığınız tarayıcılardan bazılarını ve bunları kullanıp kullanmadığınızı düşünün: Safari'nin teknoloji önizlemesi, Chrome'un Canary'si, Firefox'un Beta kanalı. Bunlar, API kesintilerini ve sitelerinizi etkileyen değişiklikleri bu değişiklikler etkilenmeden önce belirleme konusunda size en iyi fırsatı sunar. ne kadar iyi karşıladığını görebileceksiniz. Benzer şekilde, kullanıcılarınızın mevcut analizleri göz önünde bulundurmanız önemlidir. Eğer Kullanıcı tabanında yüksek sayıda eski Android telefon bulunduğu için bunları testlerinize dahil ettiğinizden emin olun. Çoğu kişi hızlı donanımları ve en yeni sürümleri piyasaya sürdü.
- Hem temiz bir profil kullanarak hem de gizli tarama modunda test edin; büyük olasılıkla, daha önce kişisel profilinizde gerekli izinler. Herhangi bir soru için siteye erişimi reddederseniz ne olacağını test edin.
- Sayfalarınızı Firefox'un parmak izi korumasında açık bir şekilde test edin yatırım yapmanız önemlidir. Bu işlem, sayfanız dijital parmak izi almaya çalışıyorsa izin iletişim kutuları gösterir veya bazı API'ler için fuzzed veriler döndürür. Bu, hizmetinize dahil olan üçüncü tarafların dijital parmak izlenebilen veriler kullanıp kullanmadığını veya kullandığınız hizmetin bu verilere bağlı olup olmadığını doğrulamanıza yardımcı olur düşünmeye başladım. Ardından, kasıtlı olarak tütsülemenin ihtiyacınız olan şeyi yapmayı zorlaştırıp zorlaştırmadığını düşünebilirsiniz. Etkili bir ekip oluşturmak isterseniz bu verileri başka bir kaynaktan elde etmek, onlar olmadan yapmak veya daha az ayrıntılı veriler kullanmak için uygun düzeltmeleri yapabilirsiniz.
- Daha önce üçüncü taraflar modülünde açıklandığı gibi, üçüncü taraf reklam stratejinizi
kullanıp kullanmadıklarını görmek için
bağımlılıkları kontrol etmelisiniz. Pasif dijital parmak izinin tespit edilmesi zordur (ve
imkansızdır.) ancak dijital parmak izi modu, bazı dijital parmak izi tekniklerini işaretleyebilir.
ve navigator.userAgent kullanımlarını veya
<canvas>
nesnelerinin beklenmedik şekilde oluşturulmasını araştırmak da bazı yaklaşımları ortaya çıkarabilir. teklif veren reklamlar da dahildir. "Olası eşleşme" teriminin kullanım alanlarını bulmak da pazarlama departmanında üçüncü bir tarafı açıklayan teknik materyal; Bu durum bazen dijital parmak izi tekniklerinin kullanıldığını gösterebilir.
Tarayıcılar arası test araçları
Kodunuzu gizlilik amacıyla test etmek zordur. Manuel test yaparken bakılması gereken noktalar daha önce açıklanmıştır. Örneğin, siteye erişmeye çalıştığı API'ler için siteye erişimi reddettiğinizde ne olur ve bu izin kullanıcıya nasıl sunulur? Otomatik test, sitenin kullanıcının güvenmesine yardımcı olacak mı, yoksa kullanıcıyı ona güvenmemeye teşvik edecek şekilde mi davrandığını değerlendiremez. bir şeylerin gizlendiğini düşünebilirsiniz.
Ancak, site denetlendikten sonra, yeni tarayıcı sürümlerinde (veya yakında kullanıma sunulacak "beta" ve "preview" arasında seçim yapın otomatik olarak çalıştırılabilir ve büyük ölçüde mevcut test paketinizin bir parçası olmalıdır. Bir şey API yüzey kapsamıyla çalışırken otomatik test araçlarınızı dikkate almanız gerekirse, çoğu tarayıcının belirli hangi API'lerin ve özelliklerin kullanılabileceğini kontrol edin. Chrome bunu komut satırı anahtarlarıyla yapar aynı şekilde Firefox çalışır ve test aracından bunlara erişebilir kurulumu, API'ler kapalı veya açık durumdayken belirli testleri çalıştırmanıza olanak tanır. (Örneğin, Cypress'in tarayıcı başlatma eklentisi a . puppeteer'ın launch.args parametresi için tarayıcı işaretleri ekleyin.)
Yaklaşık bilgiler için yalnızca kullanıcı aracısı dizesini kullanın
Başka bir örneği ele alalım. Web'in başlangıcından bu yana tarayıcılar, HTTP User-Agent üstbilgisi. Kullanıcılar, neredeyse uzun zamandır web geliştiricilerine, kullanıcı aracısı başlığının içeriğini kullanmamalarını öğretiyor. tarayıcılara farklı içerik sunmaya devam ediyor. Bu süre boyunca web geliştiricileri de belirli miktarda gerekçelendirme yöntemini kullanabilirsiniz. Tarayıcılar, web siteleri tarafından mükemmel olmayan bir deneyim için öne çıkmak istemediğinden, bu, her tarayıcının diğer bir tarayıcı gibi davranmasına ve kullanıcı aracısı dizesinin şuna benzer şekilde görünmesine neden olur:
Mozilla/5.0 (Linux; Android 6.0.1; SGP771 Build/32.2.A.0.253; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36
.
Bu, diğer unsurların yanı sıra, ilk astronotların piyasaya sürüldüğü tarihte piyasaya sürülmüş bir tarayıcı olan Mozilla/5.0 olduğunu iddia eder. 20 yıldan uzun süre önce Uluslararası Uzay İstasyonu'na bindi. Kullanıcı aracısı dizesi, dijital parmak izi alma için zengin bir entropi kaynağıdır; elbette ki bu dijital parmak izini azaltmak için tarayıcı üreticileri kullanıcı aracısı başlığını dondurmuş ya da teşvik etmektir. Bu, API'yi tamamen kaldırmadan API'lerin sağladığı verileri değiştirmenin başka bir örneğidir. Boş bir kullanıcı aracısı üstbilgisi göndermek, mevcut olduğunu varsayan çok sayıda web sitesini bozar. Genel olarak tarayıcıların bazı ayrıntıları çıkarıp ardından o zamandan itibaren neredeyse hiçbir değişiklik yapmadan devam etmeliyiz. (Bu sorunun yaşandığını görmek için Safari, Chrome, ve Firefox.) Karşı koruma ayrıntılı dijital parmak izini çıkarma, kullanıcı aracısı başlığının artık doğru olduğuna güvenemeyeceğiniz ve istiyorsanız alternatif veri kaynakları bulmanız gerekir.
Açıkça belirtmek gerekirse, kullanıcı aracısındaki veriler tamamen kaybolmaz ancak daha düşük ayrıntı düzeyinde sunulur veya bazen yanlış olabilir. Çünkü eski ancak değişmeyen bir sayı bildirilebilir. Örneğin, Firefox, Safari ve Chrome'un tümü kapaklı bildirilen macOS sürüm numarası on olarak ayarlanır (Kullanıcı aracısı dizesi azaltma güncellemesi bölümüne bakın) daha fazla bilgi için burayı tıklayın). Chrome'un kullanıcı aracısı dizesindeki verileri nasıl azaltmayı planladığıyla ilgili tüm ayrıntıları Kullanıcı Aracısı Kısaltma'da bulabilirsiniz Ancak, kısacası, bildirilen tarayıcı sürüm numarasının yalnızca ana sürümü (yani sürüm numarasının tarayıcı 123.10.45.108 sürümü olsa bile 123.0.0.0 gibi görünür) ve işletim sistemi sürümü ayrıntılı bilgi içermez ve birkaç değişmeyen seçenekten birine dondurabilirsiniz. Bu yüzden, hayali bir cihazda çalışan hayali bir Chrome 123.45.67.89 sürümü "Windows 20" sürüm numarasını şu şekilde raporlayacaktır:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/123.0.0.0 Safari/537.36
İhtiyacınız olan temel bilgilere (tarayıcı sürümü) erişmeye devam edebilirsiniz: Windows'da Chrome 123'tür. Ancak yan kuruluş bilgileri (yonga mimarisi, Windows sürümü, Safari'nin hangi sürümünü taklit ettiği, tarayıcının alt sürümü) dondurduktan sonra kullanılamayacak.
Bunu bir "mevcut" ile karşılaştırın Farklı bir platformdaki Chrome kullanıcı aracısı:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36
,
Chrome sürüm numarası (104) ile platform tanımlayıcısının farklı olduğu görülüyor.
Benzer şekilde, Safari'nin kullanıcı aracısı dizesinde bir platform ile Safari sürüm numarası gösterilir ve ayrıca iOS'te bir OS sürümü belirtilir. ama geri kalan her şey donuyor. Dolayısıyla, hayali bir macOS 20'de çalışan hayali Safari 1234.5.67 sürümü, kullanıcı aracısına şu şekilde sahip olabilir:
Mozilla/5.0 (Macintosh; **Intel Mac OS X 10_20_0**) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15
,
iOS 20'de ise bu kod şöyle olabilir:
Mozilla/5.0 (iPhone; CPU **iPhone OS 20_0** like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/**20.0 Mobile/15E148 Safari/605.1.15**
.
Burada da temel bilgilerin (Safari, iOS veya macOS'te) kullanılabildiğini ve iOS Safari'nin hâlâ bir iOS sürüm numarası sağladığını hatırlatmak isteriz; ancak geçmişte kullanılabilen yardımcı bilgilerin çoğu donduruldu. Daha da önemlisi, Safari'yi de sürüm numarası (mevcut olması gerekmez).
Bildirilen kullanıcı aracısında yapılan değişiklikler hararetle tartışıldı. https://github.com/WICG/ua-client-hints#use-cases özetler birkaç argüman ve değişikliğin nedenlerinden bahsedin. Rowan Merewood'un da bir slayt slaytı var. .
Kabartma
Fuzzing, güvenlik uygulaması terimidir. API'lerin, bu işlemlerin üstesinden gelmek için beklenmedik değerlerle çağrılması
ve güvenlik sorununa yol açabilir. Web geliştiricileri siteler arası komut dosyası (XSS) hakkında bilgi sahibi olmalıdır.
Bu sorun, bir sayfaya kötü amaçlı komut dosyası eklemeyi içerir. Bunun nedeni genellikle sayfanın, yerleştirilen HTML'yi doğru şekilde kod dışına almamasıdır (bu nedenle bir arama sorgusu yaparsınız)
<script>
yazısı bulunur). Arka uç geliştiricileri SQL yerleştirme,
Kullanıcı girişini doğru şekilde doğrulamayan veritabanı sorguları güvenlik sorunları ortaya çıkarmaktadır (bunun amacı, xkcd'de
Küçük Bobby Tables). Fuzzing veya fuzz testi, daha doğru bir şekilde yapılır.
API'ye birçok farklı geçersiz veya beklenmeyen giriş sağlama ve sonuçları güvenlik sızıntısı açısından kontrol etme amaçlı otomatik girişimler için kullanılır.
veya diğer hatalı kullanım olabilir. Bunların tümü kasıtlı olarak yanlış bilgi sağlama örnekleridir. Fakat burada işlem yapılıyor
.
Yapılması gerekenler
- Kullanıcı aracısı dizesine bağlı olup olmadığını görmek için kod tabanınızı kontrol edin (
navigator.userAgent
aramasının en çok tekrarı bulabilirsiniz veya arka uç kodunuz büyük olasılıkla üstbilgi olarakUser-Agent
'yi bulacaktır (örneğin, ve bildirmeyi konuştuk. - Kendi kodunuzda kullanımlar bulursanız kodun neyi kontrol ettiğini bulun ve bunu ayırt etmenin başka bir yolunu bulun (veya yeni bir bağımlılık bulun ya da sorunları bildirerek veya güncellemeler için kendileriyle kontrol ederek yukarı akışla çalışın). Bazen Hataları çözmek için tarayıcı farklılaştırması gereklidir, ancak dondurulduktan sonra kullanıcı aracısı giderek bunu yapmanın bir yolu olarak kalmayacaktır.
- Güvende olabilirsiniz. Sadece marka, ana sürüm ve platformun temel değerlerini kullanıyorsanız bunların kullanılabilir ve kullanıcı aracısı dizesinde doğru olmalıdır.
- MDN, ("tarayıcı algılama") kullanıcı aracısı dizesine bağımlı olmaktan kaçınmanın iyi yollarını açıklar. Bunların arasında bir diğeri de özellik algılamadır.
- Kullanıcı aracısı dizesine bir şekilde bağımlıysanız (faydalı kalan birkaç temel değeri kullanırken bile) bu, yeni tarayıcı sürümlerinde sunulacak kullanıcı aracılarıyla test etme fikrini değerlendirin. Yeni sürüme geçirilecek olan bu tarayıcılarla beta veya teknoloji önizleme derlemeleri aracılığıyla kendi başlarına ancak bir web sitesi için özel bir kullanıcı aracısı dizesi ayarlamak da teşvik etmek anlamına gelir. Chrome, Edge'de kullanıcı aracısı dizesini geçersiz kılabilir, Firefox ve Safari, yerel geliştirme yaparken, kodunuzun kullanıcılardan alabileceğiniz farklı kullanıcı aracısı değerleriyle nasıl ilişki kurduğunu kontrol etmek için kullanabilirsiniz.
İstemci İpuçları
Bu bilgileri sağlamanın önemli tekliflerinden biri Kullanıcı Aracısı İstemci İpuçları,
ancak bu tüm tarayıcılarda desteklenmemektedir. Desteklenen tarayıcılar üç başlık iletir: Sec-CH-UA
. Bu üstbilgi,
tarayıcının markası ve sürüm numarası; Sec-CH-UA-Mobile
: Bu değer, isteğin mobil cihazdan gelip gelmediğini gösterir. ve Sec-CH-UA-Platform
,
işletim sisteminin adını belirler. (Bu başlıkları ayrıştırmak, göründüğünden daha kolay değildir.
Basit dizeler yerine Yapılandırılmış Başlıklar
ve bu, "karmaşık" iletiler gönderen tarayıcılar tarafından uygulanır. ve bu değerler doğru şekilde ayrıştırılmazsa yanlış işlenecek. Bu,
Tarayıcı tarafından önceden yapılan "fuzz testi" örneği. Bu verileri kullanan bir geliştiricinin,
Çünkü veriler, yanlış veya geç ayrıştırmaların kötü sonuçlar vermesi (örneğin, bunları yapmayan markaları göstermek gibi)
veya düzgün kapanmayan dizeler olabilir.) Neyse ki bu veriler tarayıcı tarafından JavaScript'e doğrudan
navigator.userAgentData
(destekleyici bir tarayıcıda şu nesneye benzer şekilde görünebilir):
{
"brands": [
{
"brand": " Not A;Brand",
"version": "99"
},
{
"brand": "Chromium",
"version": "96"
},
{
"brand": "Google Chrome",
"version": "96"
}
],
"mobile": false
}