Proxy kullanımını web sitelerinden gizlemek, temelde yüksek kaliteli residential veya dedicated proxy'ler kullanmayı, IP adreslerini rotasyona sokmayı ve IP itibarı, HTTP başlıkları, WebRTC sızıntıları ile tarayıcı parmak izi üzerinden tespiti önlemek için tarayıcı ve ağ isteği yapılandırmalarını titizlikle yönetmeyi gerektirir.
Proxy tespit mekanizmalarını anlamak
Web siteleri, proxy'lerden gelen bağlantıları belirlemek ve engellemek için çeşitli teknikler kullanır. Bu mekanizmalar basit başlık analizinden gelişmiş tarayıcı parmak izine kadar uzanır; amaç otomatik botları elemek, dolandırıcılığı azaltmak, coğrafi kısıtlamaları uygulamak veya fikri mülkiyeti korumaktır.
IP itibarı ve kara listeler
Web siteleri, veri merkezlerine, VPN'lere veya daha önce tespit edilmiş kötü niyetli aktörlere ait olduğu bilinen IP adreslerinin veritabanlarını tutar ya da bunlara abone olur. Bir istek böyle bir veritabanında listelenen IP adresinden geldiğinde şüpheli olarak işaretlenir. Spam, credential stuffing veya başka kötüye kullanım geçmişi olan IP adresleri hızla bu kara listelere eklenir.
HTTP başlıkları
HTTP istekleri; istemci, isteğin kendisi ve aradaki aracılar hakkında bilgi veren çeşitli başlıklar içerir. Proxy'ler çoğu zaman belirli başlıkları ekler veya değiştirir; bu da istemeden varlıklarını ele verebilir. Proxy kullanımına işaret eden yaygın başlıklar arasında Via, X-Forwarded-For, Proxy-Connection ve Forwarded bulunur.
WebRTC sızıntıları
WebRTC (Web Real-Time Communication), tarayıcılarda gerçek zamanlı iletişim yetenekleri sağlayan bir teknolojidir. Doğrudan iletişim için faydalı olsa da, kullanıcı bir proxy veya VPN üzerinden bağlıyken bile gerçek IP adresini açığa çıkarabilir. Bunun nedeni, WebRTC'nin eşler arası bağlantılar için istemcinin yerel ve genel IP adreslerini keşfetmek üzere genellikle STUN/TURN sunucularını kullanarak proxy'yi atlamasıdır.
Tarayıcı parmak izi
Tarayıcı parmak izi, benzersiz bir kimlik oluşturmak için kullanıcının tarayıcısından ve cihazından çok sayıda veri noktasını bir araya getirir. Bu "parmak izi", kullanıcıları siteler arasında takip edebilir ve tipik tarayıcı yapılandırmalarından sapmaları tespit edebilir. Veri noktaları şunlardır:
* User-Agent dizesi
* Ekran çözünürlüğü ve renk derinliği
* Yüklü yazı tipleri
* Tarayıcı eklentileri ve uzantıları
* Canvas ve WebGL render yetenekleri
* Donanım eşzamanlılığı (hardware concurrency)
* Saat dilimi ve dil ayarları
* HTTP başlık sırası
Bir tarayıcının parmak izi, IP adresinin kaynağıyla tutarsız olduğunda (örneğin mobil bir IP'den gelen tipik bir Windows parmak izi) veya otomatik scriptlere özgü özellikler gösterdiğinde şüphe uyandırır.
Proxy kullanımını gizleme stratejileri
Proxy kullanımını etkili biçimde gizlemek; doğru proxy seçimini titiz yapılandırma ve davranış taklidiyle birleştiren çok yönlü bir yaklaşım gerektirir.
Proxy türü seçimi
Tespit edilmekten kaçınmada proxy türü seçimi temeldir.
Residential proxy'ler
Residential proxy'ler trafiği, internet servis sağlayıcıları (ISP) tarafından ev kullanıcılarına atanan gerçek IP adresleri üzerinden yönlendirir. Bu IP'ler gerçek evlerden ve mobil cihazlardan geldiği için web sitelerine meşru görünür.
Dedicated veri merkezi proxy'leri
Dedicated veri merkezi proxy'leri ticari veri merkezlerinin IP adreslerini kullanır, ancak her IP tek bir kullanıcıya ayrılmıştır. Veri merkezi IP'si oldukları hâlâ anlaşılabilse de, ayrılmış olmaları başka kullanıcıların davranışları yüzünden kara listeye girme riskini azaltır.
Paylaşımlı veri merkezi proxy'leri (kaçının)
Paylaşımlı veri merkezi proxy'leri birden çok kullanıcı arasında paylaşılan IP adreslerini kullanır. Bu IP'ler, farklı kullanıcıların birikmiş kötüye kullanım davranışları nedeniyle kara listeye girmeye çok açıktır ve veri merkezi IP'si oldukları kolayca anlaşılır.
| Özellik | Residential proxy'ler | Dedicated veri merkezi proxy'leri | Paylaşımlı veri merkezi proxy'leri |
|---|---|---|---|
| Kaynak IP | ISP tarafından atanan gerçek IP'ler (ev/mobil) | Ticari veri merkezleri | Ticari veri merkezleri |
| Anonimlik düzeyi | Yüksek (sıradan kullanıcı gibi görünür) | Orta (bilinen veri merkezi IP'si, ancak size özel) | Düşük (kolayca tespit edilir ve sıkça kara listeye girer) |
| Tespit riski | Düşük | Orta ile yüksek arası | Yüksek |
| Maliyet | Yüksek | Orta | Düşük |
| Coğrafi hedefleme | Mükemmel (belirli şehir, bölge, ISP) | İyi (ülke, bazen şehir düzeyi) | Sınırlı (ülke düzeyi) |
| Kullanım alanı | Yüksek anonimlik ve güven gerektiren web scraping, reklam doğrulama, SEO izleme, pazar araştırması | Aşırı gizliliğin şart olmadığı yüksek bant genişlikli işler, belirli veri toplama | Düşük riskli, hassas olmayan işler; gizlilik için genelde önerilmez |
IP rotasyonu ve yönetimi
Sık IP rotasyonu, hız sınırlamasını ve tek bir IP'den gelen tekrarlı isteklere dayalı tespiti önlemek için kritiktir. Web siteleri genellikle bir IP adresinden zaman içinde gelen istek sayısını takip eder. Eşiği aşmak CAPTCHA'ları, geçici engelleri veya kalıcı yasakları tetikleyebilir.
* Otomatik rotasyon: her istekten sonra veya belirli aralıklarla (örneğin her dakika, her 5 dakikada bir) IP'leri otomatik olarak değiştiren bir proxy hizmeti kullanın.
* Sticky oturumlar: oturum sürekliliği gerektiren işlerde (örneğin giriş yapma) aynı IP'yi belirli bir süre koruyan, ardından rotasyona giren sticky oturumlar kullanın.
* IP havuzu çeşitliliği: hedef sitelerin örüntü tanımasını önlemek için farklı IP aralıklarından ve coğrafi konumlardan proxy'ler kullanın.
HTTP başlık yönetimi
Proxy'ler belirli HTTP başlıkları aracılığıyla varlıklarını ele verebilir. Bunu azaltmak için:
Yaygın proxy ile ilgili başlıklar
Via: isteğin geçtiği ara proxy'leri veya ağ geçitlerini belirtir.X-Forwarded-For: isteği ileten tüm proxy'lerin IP adreslerini, başta istemcinin orijinal IP'si olacak şekilde listeler.Proxy-Connection: istemcilerin proxy bağlantı tercihlerini bildirmek için kullandığı başlık.Forwarded:ViaveX-Forwarded-Forbilgilerini birleştiren daha yeni ve daha standart bir başlık.
Başlıkları değiştirme
Proxy istemcinizi veya uygulamanızı bu başlıkları kaldıracak ya da sahteleyecek şekilde yapılandırın. Diğer başlıkların (örneğin User-Agent, Accept-Language, Accept-Encoding) tipik bir tarayıcıyla tutarlı olduğundan ve mümkünse proxy'nin coğrafi konumuyla eşleştiğinden emin olun.
Python requests kütüphanesinde başlık kaldırma örneği:
import requests
proxies = {
'http': 'http://user:[email protected]:8080',
'https': 'http://user:[email protected]:8080'
}
# requests kütüphanesinin gönderdiği varsayılan başlıklar
# User-Agent, Accept-Encoding, Accept, Connection genellikle gönderilir
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Accept-Language': 'en-US,en;q=0.9',
'Accept-Encoding': 'gzip, deflate, br',
'Connection': 'keep-alive',
# İstemci ekliyorsa proxy ile ilgili başlıkları açıkça kaldırın
# Not: Birçok proxy hizmeti bunu otomatik olarak halleder.
# Başlıkları proxy *ekliyorsa*, istemci tarafında kaldırmak yetmez.
# Proxy'nin kendisi bunları eklememek üzere yapılandırılmalıdır.
'Via': '', # Kaldırın veya boş bırakın
'X-Forwarded-For': '' # Kaldırın veya boş bırakın
}
try:
response = requests.get('http://targetwebsite.com', proxies=proxies, headers=headers)
print(response.status_code)
# print(response.request.headers) # Gerçekte gönderilen başlıkları incelemek için
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")
Tarayıcı yapılandırması ve ortamı
Ağ düzeyindeki yapılandırmaların ötesinde, istemci tarayıcının davranışı ve özellikleri gizlilik için kritik önemdedir.
WebRTC'yi devre dışı bırakma
Tarayıcıda WebRTC'yi kapatın veya WebRTC sızıntılarını önlemek için tasarlanmış tarayıcı eklentileri kullanın. Firefox'ta adres çubuğuna about:config yazın ve media.peerconnection.enabled değerini false yapın. Chromium tabanlı tarayıcılarda "WebRTC Network Limiter" gibi eklentiler sızıntıları azaltabilir.
User-Agent dizesi yönetimi
User-Agent dizesinin yaygın bir tarayıcı sürümü ve işletim sistemiyle tutarlı olduğundan emin olun. Güncel tarayıcı eğilimlerini yansıtacak şekilde düzenli olarak güncelleyin. Eski veya sıra dışı User-Agent değerlerinden kaçının.
Çerez ve yerel depolama yönetimi
Her oturum veya görev için "temiz" bir tarayıcı profili kullanın. Bu; web sitelerinin mevcut etkinliği geçmiş ziyaretlerle ilişkilendirmesini veya kalıcı, otomatik bir örüntü tespit etmesini engellemek için çerezleri, yerel depolamayı ve oturum verilerini temizlemeyi kapsar. Antidetect tarayıcılar bu profilleri otomatik olarak yönetir.
Tarayıcı parmak izini azaltma
Tarayıcı parmak izini azaltmak, birden çok tarayıcı özelliğini birlikte ele almayı gerektirir:
Canvas parmak izi
Canvas parmak izi, tarayıcının grafikleri benzersiz biçimde işlemesinden yararlanır. "Canvas Blocker" gibi eklentiler canvas çıktısına gürültü ekleyerek parmak izinin her seferinde farklı olmasını sağlayabilir.
WebGL parmak izi
Canvas'a benzer şekilde WebGL 3D render kullanır. Bazı antidetect tarayıcılar veya eklentiler WebGL render parametrelerini değiştirebilir.
Yazı tipi listeleme
Web siteleri yüklü yazı tiplerini tespit edebilir. Standart bir yazı tipi kümesi ya da yazı tipi listesini sahteleyen bir antidetect tarayıcı kullanın.
Donanım ve yazılım ayrıntıları
Ekran çözünürlüğü, CPU çekirdek sayısı ve bellek gibi ayrıntıların sahtelenmesi, antidetect tarayıcılar veya özel tarayıcı otomasyon çerçeveleriyle (örneğin puppeteer-extra-plugin-stealth ile Puppeteer) sağlanabilir. Bu araçlar, web sitelerinin sorguladığı JavaScript özelliklerini değiştirir.
Bağlantı güvenliği (SSL/TLS)
Güvenli iletişim için daima HTTPS proxy'leri kullanın. HTTPS proxy, istemciniz ile proxy sunucusu arasındaki ve kritik olarak proxy sunucusu ile hedef site arasındaki trafiği şifreler. Bu, aracıların istek verilerinizi incelemesini veya değiştirmesini engeller ve hedef sitenin standart, güvenli bir bağlantı algılamasını sağlar.
İnsan davranışını taklit etme
Otomatik istekler çoğu zaman insan etkileşiminden farklı örüntüler sergiler.
İstek örüntüleri ve gecikmeler
İstekler arasına değişken gecikmeler ekleyin. Tekdüze gecikmelerden veya ardı ardına hızlı isteklerden kaçının. Sayfalar arasında gezinme, ögelere tıklama ve içerikte zaman geçirme dâhil tipik insan gezinme örüntülerini taklit edin.
CAPTCHA çözümü
Web siteleri insanları botlardan ayırmak için CAPTCHA kullanır. Karşılaştığınızda CAPTCHA çözüm hizmetlerini (örneğin 2Captcha, Anti-Captcha) uygulayın veya insan gücüne dayalı CAPTCHA çözücülerle entegre olun. Bu, insana benzer bir etkileşim katmanı ekler.
# Python'da değişken gecikme ekleme örneği
import time
import random
def human_like_delay(min_delay=1, max_delay=5):
time.sleep(random.uniform(min_delay, max_delay))
# Scraping döngünüzde:
# requests.get(...)
# human_like_delay()
# requests.get(...)
Bu stratejileri birleştirerek proxy kullanıcıları tespit edilme olasılığını belirgin şekilde azaltabilir ve hedef sitelere erişimlerini sürdürebilir.
