Bu kullanışlı Python kitaplığı ile hemen kendi CAPTCHA testlerinizi yapın.
2000’lerin başında tanıtılan CAPTCHA’lar, onlarca yıldır kullanıcıları rahatsız ediyor. Bir otobüsün resimlerini bulmaktan garip bir harf dizisini girmeye veya matematik problemlerini çözmeye kadar, sitelerin robot olmadığınızı kanıtlamanızı istediği birçok yol vardır.
Ancak CAPTCHA’nın nasıl çalıştığını ve web sitelerinin sizi neden onları çözmeye zorladığını hiç merak ettiniz mi?
CAPTCHA Nedir?
CAPTCHA, Computers and Humans Apart’ı anlatmak için Tamamen Otomatik Halka Açık Turing testi anlamına gelir. Adından da anlaşılacağı gibi, insanlar ve bilgisayarlar arasında ayrım yapar.
CAPTCHA’nın temel konsepti, kalıpları tanımak için bilgisayar zekasının eksikliğine dayanır. Bir bilgisayar harfleri tanıyabilir, ancak harflerin değiştirildiği veya çok fazla arka plan gürültüsüyle birlikte bulunduğu durumlarda tanıyamaz. Bu arada insanlar, nesiller boyunca kalıpları bir güvenlik mekanizması olarak tespit etmek ve tanımlamak için kablolanmıştır.
CAPTCHA Türleri
CAPTCHA çeşitli türlerde gelir, bunlardan birkaçı:
1. Metin Tabanlı Resim CAPTCHA
Metin tabanlı CAPTCHA, bir dizi kelime veya kelime öbeği veya farklı harf, sayı ve sembollerin rastgele bir kombinasyonunu kullanır. Yorumlanması biraz zor olan yabancılaştırılmış bir biçimde bir dizi karakteri temsil eder.
Bunlar arasında bozulma, döndürme, çevirme, yalpalama, büyük harf kullanımı ve bitişik karakterlerle örtüşme yer alır. Bu tekniği geliştirmek için, bir CAPTCHA, görüntü boyunca yayılmış, rastgele bir şekilde çizgiler, yaylar veya noktalar gibi grafikler içerebilir.
2. Ses CAPTCHA
Audio CAPTCHA, metin tabanlı CAPTCHA’lara bir alternatif olarak hizmet eder ve görme engelli kullanıcılara hitap eder. Audio CAPTCHA, kullanıcının doğru girmesi gereken bir dizi harf veya sayının ses kaydını sunar. Yine, bu sefer ek arka plan gürültüsü şeklinde bozulma var. Unutulmaması gereken ilginç bir nokta, Python CAPTCHA modülünün yalnızca sayılarla çalışmasıdır.
3. Resim CAPTCHA
Resim CAPTCHA’ları, metin tabanlı resim CAPTCHA’larına bir alternatiftir. Bunlar, günlük olarak ele alacağınız tipik CAPTCHA’lardır.
Bu CAPTCHA’lar, tekne, kamyon veya yangın musluğu gibi belirli bir nesneyi tanımlamanızı ister. Bunları, seçilebilecek diğer görüntülerin yanında sunarlar. Bunlar, metin tabanlı testlerden çok daha insan dostudur ve botların tanıması daha zordur.
4. Matematik, Kelime Problemi ve Bulmaca CAPTCHA
Matematik CAPTCHA’ları genellikle 17 + 23, 16 * 10 veya 30/10 gibi grafik öğeleri eklenmiş basit bir aritmetik problemi temsil eder.
Sözcük Problemi CAPTCHA, bir dizi sözcük veya ilgili öğe sunar ve sizden boşlukları uygun yanıtla doldurmanızı ister.
Puzzle CAPTCHA, eksik parçanın görüntüyü tamamlaması için bir çubuğu doğru uzunluğa kaydırmak gibi mini bir yapbozun çözülmesini içerir.
5. CAPTCHA ReCAPTCHA Yok
Google, botları önlemek için gelişmiş risk analizi ve uyarlanabilir zorluklar kullanan ReCAPTCHA’nın sahibidir. ReCAPTCHA, Google Street View, gazeteler, kitaplar ve daha fazlasından içerik alır.
Hiçbir CAPTCHA ReCAPTCHA, sizden herhangi bir testten geçmenizi istemeden “Ben robot değilim” seçeneğini işaretlemenizi gerektirmez. Bu, hareketleri izlediği ve tıklamayı tanımladığı için mümkündür. Unutulmaması gereken bir şey, ReCAPTCHA’nın özel bilgilerinizi de yakalamasıdır.
Python CAPTCHA modülünü kullanmanın yanı sıra HTML, CSS ve JS kullanarak bir CAPTCHA doğrulama formu oluşturabilirsiniz .
Python CAPTCHA Modülü
Python, kısa sürede metin tabanlı görüntü ve ses CAPTCHA’ları oluşturmanıza yardımcı olan CAPTCHA adlı harika bir modülle birlikte gelir. Modül yerleşik bir yazı tipi stili ve sesi sunsa da, CAPTCHA’ları daha da özelleştirmek için ses ve yazı tipi verilerinizi kullanabilirsiniz.
CAPTCHA modülünü Python ortamınıza kurmak için Terminal penceresini açın ve şunu yazın:
Python Kullanarak Metin Tabanlı Bir Resim CAPTCHA Nasıl Oluşturulur
Özelleştirilmiş metin tabanlı görüntü ve ses CAPTCHA oluşturmaya yönelik kaynak kodunun tamamı bu GitHub deposunda mevcuttur .
Python kullanarak metin tabanlı bir resim CAPTCHA oluşturmak için şu adımları takip edebilirsiniz:
captcha.image içinde bulunan ImageCaptcha modülünü içe aktarın.
# importing the required libraries
from captcha.image import ImageCaptcha
CAPTCHA’nız için özel bir genişlik ve yükseklik belirleyin ve bunun bir örneğini oluşturun.
# specify dimensions
image = ImageCaptcha(width = 300, height = 100)
Bir metin tabanlı CAPTCHA biçimine dönüştürmek için input() işlevini kullanarak bir dizi karakteri kullanıcı girişi olarak alın.
# enter the text to create its captcha
captcha_text = input(“Please enter text: “)
CAPTCHA’yı oluşturmak için kullanıcıdan aldığınız metni image.generate() dosyasına iletin.
# generate the text-based captcha
data = image.generate(captcha_text)
Oluşturulan görüntüyü CAPTCHA’yı kaydetmek için CAPTCHA metnini ve uzantısıyla birlikte görüntü dosyası adını image.write() öğesine iletin.
# save the captcha image file
image.write(captcha_text, (captcha_text) + “.png”)
Python Kullanarak Metin Tabanlı Görüntü CAPTCHA Çıktısı
Bu modülün en iyi özelliklerinden biri, aynı metni farklı renk, stil ve eğrilikte oluşturmasıdır. Bunlar oluşturulan örneklerden birkaçı.
Captcha’dan Yararlanın
Bu, aynı program aracılığıyla oluşturulan bir başka büyüleyici tasarımdır.
Captcha Alt’ı Kullanın
Python Kullanarak Ses CAPTCHA Nasıl Oluşturulur
Python kullanarak bir ses CAPTCHA oluşturmak için şu adımları izleyin:
AudioCaptcha modülünü captcha.audio’dan içe aktarın.
# importing the required libraries
from captcha.audio import AudioCaptcha
AudioCaptcha() örneğini oluşturun.
# creating an audio instance
audio = AudioCaptcha()
Ses CAPTCHA’sını oluşturmak için input() işlevini kullanarak kullanıcı girişi olarak rakamları alın .
# audio captcha number, eg: 32135
captcha_text = input(“Please enter number: “)
CAPTCHA’yı oluşturmak için kullanıcıdan aldığınız metni audio.generate() dosyasına iletin .
# generate the audio-based captcha
audio_data = audio.generate(captcha_text)
Oluşturulan ses CAPTCHA’sını kaydetmek için CAPTCHA metnini ve ses dosyası adını uzantısıyla birlikte audio.write() öğesine iletin .
# save the audio file
audio.write(captcha_text, “audio”+captcha_text+’.wav’)
970322 numaralarını girerseniz , bu ses CAPTCHA programı, bir grup arka plan gürültüsüyle rakamları sırayla söyleyen bir audio970322.wav dosyası oluşturacaktır.
CAPTCHA’nın Birçok Kullanımı
Bir CAPTCHA’nın birincil işlevi, bir web sitesindeki botlar tarafından spam ve kötüye kullanımı önlemektir. Botların onları olumsuz yanıtlarla doldurmasını önleyerek çevrimiçi anketlerin doğruluğunu korumaya yardımcı olurlar. Kaba kuvvet saldırılarına karşı bir koruma katmanı görevi görürler ve bir kullanıcının bir web sitesinde oturum açmaya çalışma sayısını kısıtlarlar.
CAPTCHA ayrıca otomatik yorumların önlenmesine yardımcı olabilir ve çözülmesi güç olan ödeme ağ geçitlerinin güvenliğini sağlamaya yardımcı olabilir.