Tarayıcınızı benzersiz şekilde tanımlamak için çerezlere artık ihtiyaç yok. 2026'da Canvas ve WebGL parmak izi, anti-bot sistemlerinin en güçlü sessiz tanımlama yöntemlerinden biri haline geldi. Bu teknik, ekranın arkasında GPU'nuzu, sürücülerinizi ve font motorunuzu kullanarak oluşturulan görsel çıktıyı hash'e dönüştürür ve sizi milyonlarca kullanıcı arasından ayırt eder. EFF'nin Cover Your Tracks aracı, modern tarayıcıların %83'ünün benzersiz bir parmak izine sahip olduğunu göstermektedir. Bu rehberde, bu teknolojinin nasıl çalıştığını, neden naif spoofing girişimlerinin başarısız olduğunu ve yasal otomasyon için nasıl tutarlı bir cihaz profili oluşturulacağını ele alacağız.
Canvas ve WebGL Parmak İzi: Teknik Bağlam ve Sorunun Kökeni
Web tarayıcıları, GPU hızlandırması kullanarak metin ve grafik render eder. Ancak her GPU, sürücü ve işletim sistemi kombinasyonu piksel düzeyinde biraz farklı sonuçlar üretir. Bu farklar gözle görünmez ama bir hash fonksiyonuna girdiğinde tamamen benzersiz bir kimlik ortaya çıkar. MDN Web Docs'ta detaylı olarak belgelendirilen toDataURL() ve getImageData() API'leri, bu piksel verisini okumak için standart yoldur.
Sorunun kökeni şudur: Web platformu, görsel tutarlılık için GPU'ya erişim gerektirir, ancak bu erişim aynı zamanda donanım seviyesinde tanımlanabilir bir imza bırakır. Anti-bot sistemleri bu imzayı bir avantaj olarak kullanır; meşru otomasyon mühendisleri ise bunu anlamalı ve yönetmelidir. Canvas parmak izi ve WebGL parmak izi birlikte ele alındığında, bir tarayıcıyı çerez olmadan, kullanıcı girişi olmadan ve gizlice tanımlamak mümkündür.
Canvas Parmak İzi Nasıl Çalışır
Canvas parmak izi, bir <canvas> elementine metin, şekiller ve gradient'ler çizip ardından pikselleri okuyarak çalışır. İşlem şu adımlardan oluşur:
- Offscreen bir canvas oluşturulur (genellikle 280×60 piksel).
- Birkaç farklı fontta metin render edilir:
"Cwm fjordbank glyphs vext quiz, 😃"gibi pangramlar yaygındır. - Arka plan için gradient ve geometrik şekiller eklenir.
canvas.toDataURL()çağrılarak tüm piksel verisi base64 bir dizeye dönüştürülür.- Bu dize bir hash fonksiyonundan (genelde SHA-256) geçirilerek kısa bir kimlik üretilir.
Hash'i benzersiz kılan şey, GPU ve sürücünün anti-aliasing, sub-pixel rendering ve font hinting algoritmalarındaki küçük farklardır. Aynı "Arial 16px" metni, bir NVIDIA RTX 4070'de ve bir Intel Iris Xe'de farklı piksel düzenleri üretir. Font rendering pipeline'ındaki bu farklılıklar, tarayıcı sürümü ve işletim sistemi ile birleşince son derece spesifik bir imza ortaya çıkar.
2026 itibarıyla, EFF'nin araştırmaları ve benzer çalışmalar, web'in en iyi 10.000 sitesinin %30'undan fazlasının bir formda canvas parmak izi kullandığını göstermektedir. Bu oran 2014'te yaklaşık %5'ti ve her yıl istikrarlı şekilde artmaktadır.
Canvas İzi İçin Tipik JavaScript
// Bir sitenin canvas parmak izi toplamasının basitleştirilmiş örneği
function canvasFingerprint() {
const canvas = document.createElement('canvas');
canvas.width = 280;
canvas.height = 60;
const ctx = canvas.getContext('2d');
ctx.textBaseline = "top";
ctx.font = "16px 'Arial'";
ctx.fillStyle = "#f60";
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = "#069";
ctx.fillText("Cwm fjordbank glyphs vext quiz, 😃", 2, 15);
ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
ctx.fillText("Cwm fjordbank glyphs vext quiz, 😃", 4, 17);
return sha256(canvas.toDataURL());
}
Yukarıdaki kod, tarayıcının font rendering motoru, GPU sürücüsü ve anti-aliasing davranışı tarafından belirlenen benzersiz bir hash üretir. Hash aynı donanım üzerinde kararlıdır; ancak farklı donanımlar arasında tamamen farklıdır. İşte canvas parmak izinin gücü buradan gelir: gizli, kalıcı ve donanıma bağlı.
WebGL Parmak İzi Vektörleri
WebGL, Canvas'tan daha derin donanım sinyalleri sızdırır. Khronos Group'un WebGL spesifikasyonu, GPU satıcısını ve modelini ifşa eden iki kritik uzantı tanımlar:
| WebGL Parametresi | Örnek Değer | Sızdırdığı Bilgi |
|---|---|---|
UNMASKED_VENDOR_WEBGL |
"NVIDIA Corporation" |
GPU üreticisi |
UNMASKED_RENDERER_WEBGL |
"NVIDIA GeForce RTX 4070" |
Tam GPU modeli |
MAX_TEXTURE_SIZE |
16384 |
Donanım kapasitesi |
ALIASED_LINE_WIDTH_RANGE |
[1, 1] |
Sürücü davranışı |
| Shader precision format | HIGH_FLOAT: rangeMin=127, rangeMax=127 |
GPU kayan nokta hassasiyeti |
Bu parametreler, gl.getParameter() çağrısıyla doğrudan okunabilir. WebGL renderer parmak izi, canvas hash'inden daha spesifiktir çünkü tam GPU modelini ortaya çıkarır. Bir bot, "NVIDIA GeForce RTX 4070" döndürdüğünde ama IP adresi bir veri merkezinden geliyorsa, bu tutarsızlık anında alarm verir.
Kayan Nokta Quirk'leri ve Shader Parmak İzi
WebGL shader'ları, farklı GPU'larda farklı kayan nokta yuvarlama davranışları sergiler. Bir anti-bot sistemi, fragment shader'da sin(cos(tan(x))) gibi işlemler yaptırıp sonucu okuyarak GPU'yu parmak iziyle tanımlayabilir. AMD, NVIDIA ve Intel GPU'lar bu işlemlerde son bitlerde farklılık gösterir. Bu fark, IEEE 754 standardının uygulama serbestisi bırakmasından kaynaklanır ve her GPU üreticisi farklı yuvarlama stratejileri kullanır.
Bu teknik, WebGL parmak izini canvas'tan daha ince taneli hale getirir. İki tarayıcı aynı canvas hash'ini üretebilir (aynı font setine sahip oldukları için), ancak shader precision farkları onları yine de ayırt eder.
Naif Gürültü Enjeksiyonu Neden Ters Eder
2026'da en yaygın hata, canvas hash'ini her çağrıda rastgele değiştirmektir. Bu yaklaşım mantıklı görünür: "Eğer hash benzersizse, onu rastgele yaparsam tanımlanamam." Ancak modern ML tabanlı anti-bot sistemleri tam da bunu arar.
2026'nın anti-bot motorları şu mantığı kullanır:
- Aynı sayfa yüklemesinde canvas hash'ini 3–5 kez okur.
- Hash'ler arasındaki tutarlılığı kontrol eder.
- Eğer hash her çağrıda değişiyorsa, bu bir bot sinyalidir.
- Gerçek bir tarayıcı, aynı donanımda her zaman aynı hash'i üretir.
Başka bir deyişle, rastgele gürültü enjeksiyonu, gerçek bir tarayıcıdan daha bot benzeri görünür. Meşru bir tarayıcı, aynı oturumda 10 kez canvas render ettiğinde 10 kez aynı hash'i alır. Rastgele hash döndüren bir bot ise 10 farklı hash üretir — bu, "ben sahteciyim" demenin dijital eşdeğeridir. 2026 ML dedektörleri, hash değişkenliğini bir güven skoru olarak kullanır: yüksek varyans = düşük güven = işaretle.
Doğru Yaklaşım: Seed'li Tutarlılık
Canvas parmak izi spoofingnin doğru yapılış şekli rastgelelik değil, kontrollü tutarlılıktır. Doğru yaklaşım:
- Belirli bir donanım profili seç (örneğin "Intel Iris Xe Graphics").
- O profile ait canvas hash'ini bir kez hesapla.
- Aynı oturum boyunca her çağrıda aynı hash'i döndür.
- WebGL
UNMASKED_RENDERERdeğerini canvas hash'i ile tutarlı tut (yani Intel GPU'ya ait canvas hash'i ile NVIDIA renderer döndürme). - Farklı oturumlarda farklı profiller kullan ama her profil içinde tutarlı kal.
- Font listesi, ekran çözünürlüğü ve User-Agent dizesi de aynı profille uyumlu olmalı.
Bu, bir cihaz hikayesi oluşturmak anlamına gelir: tüm sinyaller tek bir tutarlı kimlik etrafında organize edilir. Rastgele değil, seed'li. Değişken değil, kararlı.
Neden Konut Proxy'leri Önemlidir
Mükemmel bir cihaz profili tek başına yeterli değildir. Eğer IP adresiniz bir veri merkezinden geliyorsa, tüm canvas/WebGL tutarlılığınız boşa gider. Anti-bot sistemleri cihaz parmak izini ve ağ kimliğini birlikte değerlendirir.
Senaryo şöyledir: Tarayıcınız "NVIDIA GeForce RTX 4070" renderer'ı döndürüyor ve canvas hash'i bir ev kullanıcısına uygun. Ama IP adresiniz AS14618 Amazon.com kayıtlı bir veri merkezi IP'si. Bu tutarsızlık — ev cihazı + veri merkezi IP'si — bir botnet veya proxy tüneline işaret eder ve anında işaretlenirsiniz. ProxyHat konut proxy'leri %99.9 başarı oranı ile gerçek ISP'lere kayıtlı IP'ler sağlar.
Konut proxy'leri bu sorunu çözer çünkü gerçek ISP'lere kayıtlı IP'ler sağlar. Bir New York konut IP'si + bir ev kullanıcısına uygun cihaz profili, tutarlı ve inandırıcı bir hikaye oluşturur. ProxyHat'in konum seçenekleri, şehir seviyesinde hedefleme sunarak bu tutarlılığı daha da güçlendirir.
Proxy Türü Karşılaştırması
| Proxy Türü | IP Kaynağı | İtibar | Parmak İzi Uyumluluğu |
|---|---|---|---|
| Datacenter | Veri merkezi ASN | Düşük | Kötü — ev cihaz profili ile çelişir |
| Mobile | Mobil operatör | Orta-Yüksek | İyi — mobil cihaz profili ile uyumlu |
| Residential | Gerçek ISP | Yüksek | Mükemmel — ev cihaz profili ile tutarlı |
Konut proxy'leri, cihaz parmak izi hikayenizle doğal olarak uyumlu olduğu için canvas parmak izi spoofing gerektiren senaryolarda en iyi seçenektir. Veri merkezi IP'leri ise ancak sunucu-tarafı rendering gibi cihaz parmak izi içermeyen senaryolarda uygundur.
ProxyHat ile Çalışan Yaklaşım
Yasal otomasyon ve güvenlik araştırması için, ProxyHat konut proxy'lerini seed'li tarayıcı profili ile birleştirmek pratik bir yaklaşımdır. İşte adım adım kurulum:
Adım 1: ProxyHat Konut Proxy Bağlantısı
ProxyHat HTTP proxy'sine bağlanmak için gate.proxyhat.com:8080 adresini kullanın. Konut proxy'ler için kullanıcı adında ülke ve şehir hedeflemesi yapabilirsiniz:
# curl ile New York konut IP'si üzerinden istek
curl -x "http://user-country-US-city-newyork:pass@gate.proxyhat.com:8080" \
https://httpbin.org/ip
Adım 2: Python ile Proxy + Stealth Tarayıcı
import requests
# ProxyHat konut proxy konfigürasyonu
proxy_url = "http://user-country-US-city-newyork:pass@gate.proxyhat.com:8080"
proxies = {
"http": proxy_url,
"https": proxy_url,
}
# Hedef siteye istek
response = requests.get(
"https://example.com/api/data",
proxies=proxies,
timeout=30
)
print(f"Status: {response.status_code}")
print(f"IP: {response.json().get('origin', 'N/A')}")
Adım 3: SOCKS5 ile Daha Düşük Gecikme
Gecikme kritikse, SOCKS5 proxy'si HTTP'ye göre ortalama 50ms daha düşük gecikme sunabilir:
# SOCKS5 üzerinden bağlantı
curl -x "socks5://user-country-US-city-newyork:pass@gate.proxyhat.com:1080" \
https://httpbin.org/ip
Adım 4: Seed'li Cihaz Profili ile Eşleştirme
Proxy bağlantısı kurulduktan sonra, tarayıcı profili şu prensiplere uymalıdır:
- Tutarlı GPU kimliği:
UNMASKED_VENDORveUNMASKED_RENDERERdeğerleri seçilen donanım profiliyle eşleşmeli. - Kararlı canvas hash: Aynı seed ile üretilen canvas hash'i her çağrıda aynı olmalı.
- Font listesi tutarlılığı: Bildirilen fontlar, seçilen işletim sistemiyle uyumlu olmalı (örneğin Linux üzerinde "Segoe UI" bildirmeyin).
- Ekran çözünürlüğü:
window.innerWidthvewindow.innerHeightdeğerleri makul bir masaüstü çözünürlüğüne sabitlenmeli (örneğin 1920×1080). - JA3/JA4 TLS parmak izi: TLS el sıkışması sırasında sunulan cipher suite listesi, seçilen tarayıcı profiliyle uyumlu olmalı.
Tüm bu sinyaller tek bir tutarlı cihaz hikayesi oluşturmalıdır. ProxyHat'in fiyatlandırma seçenekleri, farklı ihtiyaç seviyeleri için esnek paketler sunar.
Sticky Session ile Oturum Tutarlılığı
Parmak izi tutarlılığı, IP tutarlılığı ile desteklenmelidir. ProxyHat'in sticky session özelliği, aynı IP'yi bir oturum boyunca korumanızı sağlar:
# Sticky session ile aynı IP'yi koruma
proxy_url = "http://user-session-abc123-country-US-city-newyork:pass@gate.proxyhat.com:8080"
# abc123 session ID'si, aynı IP'yi 10 dakika boyunca korur
# Farklı session ID'leri farklı IP'ler atar
Bu, bir scraping oturumunda hem cihaz profilinin hem de IP adresinin tutarlı kalmasını sağlar — bu, gerçek bir kullanıcının davranışına en yakın senaryodur.
Uygun Kullanım ve Yasal Çerçeve
Bu tekniklerin kullanımı bağlama bağlıdır ve yasal çerçeve sıkıdır. Yasal ve uygun kullanım senaryoları şunlardır:
- Yetkili QA testi: Kendi uygulamanızın anti-bot davranışını test etmek.
- Güvenlik araştırması: Açık izinle penetration testing ve savunma araştırması.
- Web scraping (meşru): robots.txt'ye uyum ve hedef sitenin ToS'unu ihlal etmeyen veri toplama. Web scraping kullanım senaryomuzu inceleyin.
- SERP takibi: Arama motoru sonuçlarını izlemek için resmi API'ler veya izin verilen scraping. SERP takibi sayfamıza bakın.
Uygun olmayan kullanım: Dolandırıcılık için takipten kaçınma, kimlik hırsızlığı, veya bir hizmetin ToS'unu açıkça ihlal etme. Avrupa Birliği'nde GDPR, otomatik karar verme ve profil oluşturma hakkında katı kurallar getirir. ABD'de CFAA (Computer Fraud and Abuse Act), yetkisiz erişimi cezalandırabilir. Her zaman hedef sitenin kullanım koşullarını kontrol edin ve gerektiğinde yasal danışman alın.
ProxyHat, tüm proxy hizmetlerinin yalnızca yasal amaçlarla kullanılmasını bekler. Daha fazla teknik detay için ProxyHat dokümantasyonunu inceleyin.
Temel Çıkarımlar
Canvas ve WebGL parmak izi, 2026'da tarayıcı tanımlamanın temelidir. Başarı, rastgelelikten değil, tutarlılıktan gelir. Doğru yaklaşım: seed'li, dahili olarak tutarlı bir cihaz profili + bu profille uyumlu bir konut proxy'si.
- Canvas parmak izi, GPU ve sürücü farklarını hash'e dönüştürür; web'in en iyi 10.000 sitesinin %30'undan fazlası tarafından kullanılır.
- WebGL,
UNMASKED_RENDERERaracılığıyla tam GPU modelini ("NVIDIA GeForce RTX 4070") ifşa eder. - Rastgele gürültü enjeksiyonu, ML dedektörleri tarafından işaretlenir; seed'li tutarlılık başarının anahtarıdır.
- Konut proxy'leri, cihaz profili hikayenizle uyumlu bir ağ kimliği sağlar; veri merkezi IP'leri bu uyumu bozar.
- ProxyHat'in
gate.proxyhat.com:8080HTTP veya:1080SOCKS5 endpoint'leri, şehir seviyesinde hedefleme ile bu uyumu güçlendirir. - Sticky session'lar, bir oturum boyunca hem IP hem cihaz profili tutarlılığını korur.
- Tüm kullanım yasal ve yetkili olmalıdır; GDPR ve CFAA kurallarına uyun.






