Büyük ölçekli web sitelerinden veri kazırken, insan olduğunuzu kanıtlamak için bir CAPTCHA ile karşılaşmamış olma ihtimaliniz çok düşüktür. Bir web kazıyıcısı olarak, siber güvenlik uzmanlarının neden bunları icat etmek zorunda kaldıklarını zaten biliyor olabilirsiniz. Bunlar, botlarınızın onlara erişmek için sonsuz web sitesi isteklerini otomatikleştirmesinin bir sonucuydu. Bu yüzden gerçek kullanıcılar bile farklı şekillerde ortaya çıkan CAPTCHA'larla yüzleşmenin sancılarını yaşamak zorunda kaldı. Ancak, bir web kazıyıcı olsanız da olmasanız da CAPTCHA'ları atlayabilirsiniz, ki bu makalenin amacı da bu olacaktır. Ama önce CAPTCHA'ların ne olduğuna bakalım.
CAPTCHA'lar genellikle sitedeki doğal olmayan trafiği tespit etmek için tetiklenir. Bu kısıtlamayı aşmak için kullanıcılar, tüm bu CAPTCHA kodlarını kırabilecek ve web sitesine gerçek bir insan gibi erişebilecek bir çözümü tercih ederler. Captcha'ları atlamak için bir çözüm Capsolver'dır. Web istekleri ile proxy kullanmak da kullanıcıların doğal bir trafik olarak görünmesine yardımcı olacaktır.
CAPTCHA, Bilgisayarları ve İnsanları Ayırmak için Tamamen Otomatikleştirilmiş Halka Açık Turing Testi anlamına gelir. Bu oldukça uzun bir kısaltma, değil mi? Şimdi bu kısaltmanın son kısmı olan Turing Testinin ne anlama geldiğini merak ediyor olabilirsiniz - bir insanın mı yoksa botun mu bir web sayfası veya web sunucusu ile etkileşime girdiğini belirlemek için basit bir testtir.
Sonuçta CAPTCHA, insanları botlardan ayırarak Siber güvenlik analistlerinin web sunucularını kaba kuvvet saldırılarına, DDoS'a ve bazı durumlarda web kazımaya karşı korumasına yardımcı olur.
CAPTCHA'ların insanları botlardan nasıl ayırdığını öğrenelim.
CAPTCHA'ları bir web sitesinin iletişim, kayıt, yorum, kayıt veya çıkış formları gibi formlarında bulabilirsiniz.
Geleneksel CAPTCHA'lar, arka plan rengi veya şeffaf arka planı olan bir kutu içinde uzatılmış veya bulanık harfler, sayılar veya her ikisinin de bulunduğu bir görüntü içerir. Ardından karakterleri tanımlamanız ve bunları takip eden metin alanına yazmanız gerekir. Bu karakterleri tanımlama süreci insanlar için daha kolaydır ancak bir bot için biraz karmaşıktır.
CAPTCHA metnini bulanıklaştırma veya bozma fikri, botun karakterleri tanımlamasını zorlaştırmaktır. Buna karşılık, insanlar farklı yazı tipleri, el yazısı vb. gibi çeşitli biçimlerdeki karakterleri yorumlayabilir ve yakalayabilir. Bununla birlikte, her insan bir CAPTCHA'yı ilk denemede çözemez. Araştırmalara göre, kullanıcıların %8 'i ilk denemelerinde yanlış yazarken, CAPTCHA'lar büyük/küçük harfe duyarlıysa %29 'u başarısız oluyor.
Öte yandan, bazı gelişmiş botlar yıllar içinde makine öğrenimi yardımıyla çarpıtılmış harfleri yakalayabilmektedir. Sonuç olarak, Google gibi bazı şirketler geleneksel CAPTCHA'ları sofistike CAPTCHA'larla değiştirdi. Bu örneklerden biri, bir sonraki bölümde keşfedeceğiniz ReCAPTCHA'dır.
ReCAPTCHA, Google'ın sunduğu ücretsiz bir hizmettir. Kullanıcılardan metin yazmak, bulmaca çözmek veya matematik denklemleri yerine kutucukları işaretlemelerini ister.
Tipik bir ReCAPTCHA, CAPTCHA'ların geleneksel formlarından daha gelişmiştir. Sokaklardaki trafik ışıkları, eski gazetelerdeki metinler ve basılı kitaplar gibi gerçek dünyadan görüntüler ve metinler kullanır. Sonuç olarak, kullanıcılar bulanık ve bozuk metinli eski tip CAPTCHA'lara güvenmek zorunda kalmazlar.
İnsan olup olmadığınızı doğrulamak için üç önemli ReCAPTCHA testi türü vardır:
Bunlar, kullanıcılardan yukarıdaki resimdeki gibi "Ben robot değilim" şeklinde bir onay kutusunu işaretlemelerini isteyen ReCAPTCHA'lardır. Çıplak gözle bakıldığında bir bot bile bu testi tamamlayabilir gibi görünse de, çeşitli faktörler dikkate alınmaktadır:
ReCAPTCHA insan olduğunuzu doğrulayamazsa, size başka bir zorluk sunacaktır.
Bu ReCAPTCHA'lar, kullanıcılara yukarıdaki resimde görebileceğiniz gibi dokuz veya on altı kare görüntü sağlar. Her kare daha büyük bir görüntünün veya farklı görüntülerin bir parçasını temsil eder. Bir kullanıcı belirli nesneleri, hayvanları, ağaçları, araçları veya trafik ışıklarını temsil eden kareleri seçmelidir.
Kullanıcının seçimi aynı testi gerçekleştiren diğer kullanıcıların seçimleriyle eşleşirse, kullanıcı doğrulanır. Aksi takdirde, ReCAPTCHA daha zorlu bir test sunacaktır.
ReCAPTCHA'nın onay kutuları veya herhangi bir kullanıcı etkileşimi kullanmadan insan olup olmadığınızı doğrulayabildiğini biliyor muydunuz?
Kullanıcının web siteleriyle etkileşim geçmişini ve kullanıcının çevrimiçiyken genel davranışını göz önünde bulundurarak kesinlikle yapar. Çoğu senaryoda, bu faktörlere bağlı olarak, sistem sizin bir bot olup olmadığınızı belirleyebilir.
Bunun yapılmaması halinde, daha önce bahsedilen iki yöntemden herhangi birine geri dönülecektir.
CAPTCHA'lar, bir web sitesi bot davranışına benzeyen olağandışı faaliyetler tespit ederse tetiklenebilir; Bu tür olağandışı davranışlar, saniyeler içinde sınırsız istekleri ve bağlantılara insanlardan çok daha yüksek oranda tıklamayı içerir.
O zaman bazı web siteleri sistemlerini korumak için otomatik olarak CAPTCHA'lara sahip olacaktır.
ReCAPTCHA'lar söz konusu olduğunda, bunları neyin tetiklediği tam olarak açık değildir. Ancak, genel nedenler fare hareketleri, tarama geçmişi ve çerezlerin izlenmesidir.
Artık CAPTCHA'ların ve Rechaptcha'ların ne olduğu, nasıl çalıştıkları ve onları neyin tetiklediği hakkında net bir genel bakışa sahipsiniz. Şimdi CAPTCHA'ların web kazımayı nasıl etkilediğini incelemenin zamanı geldi.
CAPTCHA'lar, kazıma işlemlerinin çoğunu otomatik botlar gerçekleştirdiği için web'in kazınmasını engelleyebilir. Ancak, cesaretiniz kırılmasın. Bu makalenin başında da belirtildiği gibi, web'i kazırken CAPTCHA'ların üstesinden gelmenin yolları vardır. Bunlara geçmeden önce, dikkatimizi kazıma yapmadan önce nelere dikkat etmeniz gerektiğine verelim.
Öncelikle, web kazıyıcınızın/tarayıcınızın kısa bir süre içinde çok fazla istek göndermesine izin vermediğinizden emin olmalısınız. Web sitelerinin çoğu, şartlar ve koşullar sayfalarında web sitesinin kaç isteğe izin verdiğini belirtmiştir. Kazımaya başlamadan önce bunları okuduğunuzdan emin olun.
Bir web sitesine bağlandığınızda, cihazınızla ilgili bilgileri bağlanan web sitesine gönderirsiniz. Bu bilgileri, içeriği cihazınızın özelliklerine göre özelleştirmek ve metrik izleme için kullanabilirler. Dolayısıyla, isteklerin aynı cihazdan geldiğini öğrendiklerinde, daha sonra gönderdiğiniz tüm istekler engellenecektir.
Dolayısıyla, web kazıyıcıyı/tarayıcıyı kendiniz geliştirdiyseniz, kazıyıcınızın yaptığı her istek için başlık bilgilerini değiştirebilirsiniz. Böylece hedef web sitesi farklı cihazlardan birden fazla istek alıyormuş gibi görünecektir. HTTP başlıkları hakkında daha fazla bilgi için burayı okuyun.
Bilmeniz gereken bir başka gerçek de hedef web sitesinin IP adresinizi kara listeye almamış olmasıdır. Kazıyıcınızla/tarayıcınızla çok fazla istek gönderdiğinizde IP adresinizi kara listeye almaları muhtemeldir.
Yukarıdaki sorunun üstesinden gelmek için, IP adresinizi maskelediği için bir proxy sunucusu kullanabilirsiniz.
HTTP başlıklarını ve proxy'leri bir havuzla döndürmek (bu konuda daha fazla bilgi bir sonraki bölümde), birden fazla cihazın web sitesine farklı konumlardan erişmesini sağlayacaktır. Böylece CAPTCHA'lardan kesinti olmadan kazımaya devam edebilmeniz gerekir. Bununla birlikte, web sitesinin performansına hiçbir şekilde zarar vermediğinizden emin olmalısınız.
Ancak, proxy'lerin kayıt, şifre değiştirme, çıkış formlarındaki CAPTCHA'ların üstesinden gelmenize yardımcı olmayacağını unutmamalısınız. Yalnızca web sitelerinin bot davranışına sahip olması nedeniyle tetiklediği yakalamaların üstesinden gelmenize yardımcı olabilir. Bu tür formlarda CAPTCHA'lardan kaçınmak için, CAPTCHA çözücüleri ilerideki bir bölümde inceleyeceğiz.
Yukarıdaki temel faktörlere ek olarak, bir bot ile web kazıma yaparken aşağıdaki CAPTCHA'ları bilmeniz gerekir:
Honeypots-Honeypot, bir HTML form alanı veya bağlantı içine yerleştirilmiş bir tür CAPTCHA olacaktır, ancak görünürlüğü CSS ile gizlenmiştir, bu nedenle bir bot onunla etkileşime girdiğinde kaçınılmaz olarak kendisinin bir bot olduğunu bildirmiştir. Bu nedenle, botunuzun içeriği kazımasını sağlamadan önce, öğenin CSS özelliklerinin görünür olduğundan emin olun.
Word/Match CAPTCHA-Bunlar, örneğin "3+7" gibi matematik denklemlerindeki CAPTCHA'lardır. Ayrıca çözülmesi gereken kelime bulmacaları da olabilir.
Sosyal Medya oturum açma - Bazı web siteleri, örneğin Facebook hesabınızla oturum açmanızı gerektirir. Ancak, çoğu yönetici insanların sosyal medya hesaplarıyla oturum açma konusunda isteksiz olacağını bildiği için bu tür uygulamalar popüler değildir.
Zaman takibi- Bu CAPTCHA'lar, bir insan mı yoksa bot mu olduğunu belirlemek için bir formu doldurmak gibi belirli bir eylemi ne kadar hızlı gerçekleştirdiğinizi izler.
Önceki bölümde belirtildiği gibi, hedef web sitesine her istek gönderdiğinizde proxy'leri döndürmeniz gerekir. Bu, kazıma sırasında tetiklenen CAPTCHA'lardan kaçınmanın bir yoludur. Bu durumlarda, temiz yerleşim IP proxy'leri kullanmanız gerekir.
Proxy'leri döndürdüğünüzde, hedef web sitesinin IP ayak izinizi belirlemesi zor olacaktır. Bunun nedeni, her istek için kendi IP adresiniz yerine proxy'lerin IP adresinin görünecek olmasıdır.
Web kazıma için bir kazıyıcı kullanacağınızdan, kullanıcı aracısını popüler bir web tarayıcısına veya web sitelerinin tanıdığı arama motoru botları gibi desteklenen bot-botlara gizlemeniz gerekecektir.
Sadece kullanıcı aracısını değiştirmek yeterli olmayacaktır çünkü kullanıcı aracısı dizelerinin bir listesine sahip olmanız ve ardından bunları döndürmeniz gerekecektir. Bu rotasyon, gerçekte tüm istekleri tek bir cihaz gönderirken hedef web sitesinin sizi farklı bir cihaz olarak görmesine neden olacaktır.
Bu adım için en iyi uygulama olarak, gerçek kullanıcı aracılarının bir veritabanını tutmak harika olacaktır. Ayrıca, artık ihtiyacınız olmadığında çerezleri silin.
Bir CAPTCHA'yı çözmek için daha basit ve düşük teknik bir yöntem, bir CAPTCHA çözme hizmeti kullanmak olacaktır. CAPTCHA'yı çözmek için Yapay Zeka (AI), Makine Öğrenimi (MI) ve diğer teknolojilerin bir doruk noktasını kullanırlar.
Şu anda sektörde mevcut olan önde gelen CAPTCHA çözücülerden bazıları Capsolver ve Anti-CAPTCHA'dır.
Kazıyıcınızın her saniye doğrudan bir URL'ye erişmesine izin verdiğinizde, alıcı web sitesi şüphelenecektir. Sonuç olarak, hedef web sitesi bir CAPTCHA tetikleyecektir.
Böyle bir senaryodan kaçınmak için, referer başlığını başka bir sayfadan yönlendirilmiş gibi görünecek şekilde ayarlayabilirsiniz. Bu, bot olarak algılanma olasılığını azaltacaktır. Alternatif olarak, botun istenen bağlantıyı ziyaret etmeden önce diğer sayfaları ziyaret etmesini sağlayabilirsiniz.
Honeypotlar, güvenlik uzmanlarının botları veya davetsiz misafirleri tuzağa düşürmek için kullandıkları bir web sayfasındaki gizli öğelerdir. Tarayıcı HTML'sini oluştursa da CSS özellikleri gizlenecek şekilde ayarlanmıştır. Bununla birlikte, insanların aksine, bal küpü kodu, verileri kazdıklarında botlar tarafından görülebilir. Sonuç olarak, bal küpü tarafından kurulan tuzağa düşerler.
Bu nedenle, kazıma işlemine başlamadan önce bir web sayfasındaki tüm öğelerin CSS özelliklerinin gizli veya görünmez olmadığından emin olmanız gerekir. Sadece hiçbir öğenin gizli olmadığından emin olduğunuzda, botunuzu kazıma için ayarlarsınız.
CAPTCHA'ları atlamak, çok sayıda siteden veri kazırken ortaya çıkan engelleyicileri kaldırma işlemidir. CAPTCHA'lar web trafiğinin organik olup olmadığını doğrulamak için tasarlandığından.
ReCaptcha, web sitelerinizi spam ve kötü niyetli bot trafiğinden korur. Organik trafiği bot trafiğinden ayırmak için etkileşimli bulmacalar oluşturur.
Bir bottan veya herhangi bir kazıma çözümünden arka arkaya web istekleri gönderdiğinizde, CAPTCHA'lar trafiğin spam amaçlı bir bottan geldiğini kolayca tespit edebilir. Bu nedenle, bir proxy'den bir proxy adresi kullanmak, daha gerçek zamanlı bir trafik gibi görünmenizi sağlayacaktır.
Bu makale, web'i kazırken CAPTCHA'lardan nasıl kaçınacağınız konusunda size kapsamlı bir fikir verecektir. CAPTCHA'dan kaçınmak karmaşık bir süreç olabilir. Bununla birlikte, bu makalede tartışılan belirli tekniklerin kullanılmasıyla, botu CAPTCHA'lardan kaçınacak şekilde geliştirebilirsiniz.
Bu makalede tartışılan tüm teknikleri kullanacağınızı umuyoruz.