Bu kontrol nasıl çalışır
Tarayıcınızın gönderdiği her HTTP isteği bir User-Agent başlığı içerir. Düz bir metin satırıdır; bu sayfa onu isteğinizden okur ve tam alındığı gibi gösterir. Bu adımda betik yoktur; dize ziyaret ettiğiniz her siteye, o sitelerin önündeki her CDN’e ve aradaki her proxy’ye görünür.
Sayfa sonra dizeyi alanlara ayrıştırır:
- Tarayıcı ve sürüm, ürün belirteçlerini özgüllük sırasına göre eşleştirerek. Birçok tarayıcı üzerine kurulduğu motorların belirteçlerini de içerir; Edge, Chrome’u içerir, Chrome da Safari’yi; ayrıştırıcı önce en özgül adı kontrol eder.
- Motor, tarayıcıdan türetilir: Chromium tarayıcılar için Blink, Firefox için Gecko, Safari ve Apple’ın WebKit’i zorunlu kıldığı iOS’taki her tarayıcı için WebKit.
- İşletim sistemi ve sürüm, platform belirteçlerinden, aşağıda anlatılan çekincelerle.
- Cihaz türü: Mobile, iPhone, iPad gibi belirteçlerden ve tablet model adlarından masaüstü, mobil, tablet veya bot.
- Bot tespiti, dizeyi arama motoru robotları, SEO araçları, yapay zekâ tarayıcıları, sosyal medya bağlantı getiricileri, komut satırı istemcileri ve headless tarayıcılar listesiyle eşleştirerek.
Kendi isteğiniz için sayfa tarayıcınızın gönderdiği client hint başlıklarını ve Accept-Language listesini de gösterir; çünkü user agent’ın tek başına artık vermediği resmi bu ikisi tamamlar. Yapıştırılan bir dize için yalnızca ayrıştırma gösterilir; eşlik eden başlık yoktur.
Yapıştırılan dize 2.000 karaktere kadar kabul edilir; denetim karakterleri atılır ve sorgu, adresinizin tek yönlü hash’i ve dizenin ilk 120 karakteriyle kötüye kullanımı önlemek için 30 gün günlüğe yazılır. Aynı ayrıştırma, günlük dosyasındaki user agent’ları sınıflandırması gereken betikler için JSON olarak da sunulur.
Sonucunuzu nasıl okursunuz
| Alan | Ne söyler | Nelere dikkat |
|---|---|---|
| Ham user agent | Gönderilen tam dize | Uygulama, araç çubuğu veya eklentilerin eklediği fazladan belirteçler; hiç tarayıcı belirteci olmayan dize |
| Tarayıcı ve sürüm | Tarayıcı ailesi ve bildirdiği sürüm | Chromium tarayıcılar kısaltılmış sürüm bildirir; tam sürüm client hints’tedir |
| Motor | Blink, Gecko, WebKit, Presto veya Trident | iOS’ta marka ne olursa olsun WebKit |
| İşletim sistemi | Windows, macOS, iOS, iPadOS, Android, ChromeOS, Linux veya FreeBSD | Windows NT 10.0 hem 10’u hem 11’i kapsar; macOS sürümü çoğu tarayıcıda 10.15’te dondurulmuştur |
| Cihaz türü | Masaüstü, mobil, tablet veya bot | iPadOS varsayılan olarak Mac bildirir; tabletler değişkendir |
| Bot | Tanındığında robot veya araç adı | Buradaki her değer sitelerin isteği otomasyon sayacağı anlamına gelir |
| Client hints | Platform, mimari, model, tam sürüm, mobil bayrağı | Yalnızca Chromium tarayıcılar gönderir; bazı hint’ler ancak site istedikten sonra görünür |
| Diller | Tercih sırasına göre Accept-Language listesi | Anonimlik puanında IP ülkesiyle karşılaştırılır |
Ayrıştırıcının okuduğu şekliyle birkaç yaygın dize:
- Windows NT 10.0, ardından sürümlü Chrome, ardından Safari içeren dize Windows 10 veya 11’de Chrome’dur; Safari belirteci uyumluluk kalıntısıdır.
- iPhone, sürümlü CPU iPhone OS ve Version belirteçli Safari içeren dize iPhone’da Safari’dir; aynısı CriOS ile iPhone’da Chrome’dur, yine WebKit motorunda.
- Android, Mobile ve Chrome içeren dize Android telefonda Chrome’dur; Mobile olmadan tablet veya masaüstü sitesi isteğidir.
- Macintosh ve Gecko belirteçli Firefox içeren dize Mac’te Firefox’tur.
- Komut satırı istemcisi gibi yalnızca araç adı ve sürümünden oluşan dize tarayıcı değildir; cihaz türü bot gösterir ve anonimlik puanı otomasyon sinyalleri için 20 puan keser.
Tarayıcı, motor ve işletim sistemi client hints ile ve kullandığınızı bildiğiniz şeyle uyuşuyorsa dize dürüsttür. Uyuşmuyorsa bir şey onu yeniden yazıyordur: bir eklenti, gizlilik ayarı, kurumsal proxy veya antidetect profili.
Nasıl düzeltilir
Değiştirmek isteyebilecekleriniz ve nasıl:
Eski tarayıcıyı güncelleyin. User agent’ta güncel olmayan bir sürüm nadirdir ve tarayıcıyı olağan dışı gösterir; eski tarayıcılar ayrıca bilinen güvenlik açıklarına sahip olanlardır. Tarayıcının kendi menüsünden güncelleyin; burada gösterilen sürüm bir sonraki yüklemede değişir.
Dizeyi değiştiren bir eklentiyi durdurun. Ayrıştırılan tarayıcı veya sistem kullandığınız değilse eklentiler sayfasını açıp user-agent değiştiricileri, gizlilik araçlarını veya geçersiz kılma içeren geliştirici araçlarını arayın. Giriş için kullandığınız profilde devre dışı bırakın. Sonra bu sayfayı yenileyip user agent’ı client hints ile karşılaştırın; aynı tarayıcıyı tanımlamalılar.
Proxy arkasındaki dizeyi kuruluma uydurun. User agent, parmak izinin geri kalanına ve IP’ye uyan bir platform adlandırmalıdır. Client hints’i, WebGL işleyicisi ve yazı tipleri macOS diyen bir profilde Windows user agent’ı çelişkidir; 2560 x 1440 ekranlı mobil user agent da öyle. Dizeyi diğer değerlerle birlikte üreten antidetect tarayıcılar bundan kaçınır; elle düzenlenmiş dizeler genellikle kaçınmaz. Tarayıcı parmak izi sayfasında doğrulayın.
Betikte dizeyi bilinçli ayarlayın. Sayfa çeken kod yazıyorsanız aracınızı tanımlayan ve iletişim bilgisi veren bir user agent gönderin ve sitelerin onu otomasyon saymasını bekleyin. Betikten tarayıcı taklidi yapmak client hints ve tarayıcının gönderdiği, HTTP başlıkları sayfasında listelenen diğer başlıklar üzerinden tespit edilebilir.
Masaüstü veya mobil site isteyin. Çoğu mobil tarayıcıda o sekme için user agent’ı değiştiren masaüstü sitesi iste seçeneği vardır. Bu, onu değiştirmenin tek meşru gündelik nedenidir ve geçiş burada görünür.
Bu kontrolün sınırları
- Ayrıştırma desen eşleştirmedir. Ayrıştırıcı büyük tarayıcıları, motorları ve sistemleri ile yaygın robot ve araçların listesini tanır. Olağan dışı bir tarayıcı, uygulama içindeki bir webview veya yeni bir robot temel motoruyla etiketlenebilir ya da bilinmeyen kalabilir.
- Dize kendi beyanıdır. Herhangi bir şey herhangi bir user agent gönderebilir. Bu sayfa gönderileni bildirir; doğrulamaz. Dürüst dizeyi yeniden yazılmıştan ayırmanın yolu client hints ve parmak izi sinyalleriyle çapraz kontroldür.
- Modern user agent’lar bilerek kısaltılmıştır. Chromium tarayıcılar platform sürümünü dondurur ve kısaltılmış tarayıcı sürümü bildirir; ayrıntı, yalnızca site bazılarını istediğinde gönderilen client hints’e taşındı; hints satırı tarayıcınızın açığa çıkarabileceği her şeyi göstermeyebilir.
- Firefox ve Safari client hints göndermez; o tarayıcılarda hints satırı boş kalır ve user agent tek kaynaktır.
- iPadOS kendini gizler. iPad’de Safari varsayılan olarak macOS dizesini gönderir; ayrıştırıcı gönderileni bildirir.
- Bot tespiti bir liste kullanır. Kendini dürüstçe tanıtan robotlar tanınır; tarayıcı dizesini kopyalayan bir betik bu alanda yakalanmaz, ancak anonimlik puanındaki otomasyon kontrollerine takılabilir.
User agent dizesi neden böyle görünüyor
Dize bir tarih dersidir. İlk tarayıcılar kendilerini Mozilla olarak tanıttı ve siteler Mozilla’ya daha iyi sayfalar sundu; sonraki her tarayıcı da Mozilla olduğunu iddia etti. Sonra siteler Gecko’ya baktı; WebKit tarayıcılar „like Gecko“ ekledi. Sonra siteler Safari’ye baktı; Chrome, Safari ekledi; sonra Edge, Chrome ekledi. Sonuç, neredeyse her belirtecin uyumluluk için durduğu ve yalnızca son bir ya da ikisinin gerçek ürünü adlandırdığı bir dizedir; ayrıştırıcının onu en özgül belirteçten geriye doğru okumasının nedeni budur. User agent sözlük girdisi tam bir dizeyi belirteç belirteç ele alır.
Client hints: ayrıntı nereye gitti
User agent dizesi bir parmak izi yüzeyine dönüştüğü için Chromium tarayıcılar onu kısalttı ve ayrıntıyı client hint başlıklarına taşıdı. Birkaçı her istekle gönderilir: tarayıcı markaları ve ana sürüm, cihazın mobil olup olmadığı ve platform adı. Geri kalanı — tam sürüm, platform sürümü, işlemci mimarisi ve cihaz modeli — yalnızca site bir yanıt başlığında istedikten sonra gönderilir. Bu sayfadaki hints satırı tarayıcınızın bize gönderdiklerini gösterir. User agent’ınızın iddia ettiği platformu gerçekten kullanıp kullanmadığınızı bilmek isteyen bir sitenin ilk baktığı şey hint’lerdir; user agent’ı hint’ler olmadan yeniden yazmanın ikisini de olduğu gibi bırakmaktan daha kötü olmasının nedeni budur. Client hints girdisi her başlığı ve taşıdığını listeler.
User agent kim olduğumu açığa çıkarır mı?
Tek başına hayır. Yaygın bir platformdaki güncel bir tarayıcı sürümünü çok sayıda insan paylaşır ve dize sizinle ilgili kişisel hiçbir şey taşımaz. İki başka açıdan önemlidir. Ekran boyutu, yazı tipleri, grafik kartı ve geri kalanıyla birleşince tarayıcınızı siteler arasında tanıyabilen bir parmak izine katkıda bulunur; tarayıcı parmak izi sayfasının konusu budur. Ve oturumdaki diğer kanıtlarla karşılaştırıldığında bir tutarlılık kontrolüdür: client hints, cihaz veya IP’nin beklenen platformuyla çelişen bir user agent dikkat çeker; sıradan, güncel ve dürüst olan çekmez.
