2000'lerin başında tanıtılan CAPTCHA'lar, kullanıcıları on yıllardır rahatsız ediyor. Bir otobüsün resimlerini bulmaktan, garip bir harf dizisi girmeye veya matematik problemlerini çözmeye kadar, sitelerin robot olmadığınızı kanıtlamanızı istemesinin birçok yolu vardır.

Ancak CAPTCHA'nın nasıl çalıştığını ve web sitelerinin sizi neden bunları çözmeye zorladığını hiç merak ettiniz mi?

CAPTCHA Nedir?

CAPTCHA, Bilgisayarları ve İnsanları Ayırmak için Tamamen Otomatik Genel 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 değiştirildiği veya çok fazla arka plan gürültüsü olduğu durumlarda tanıyamaz. Bu arada insanlar, bir güvenlik mekanizması olarak kalıpları tespit etmek ve tanımlamak için nesiller boyu donanıma sahiptir.

CAPTCHA türleri

CAPTCHA çeşitli türlerde gelir, bunlardan birkaçı:

1. Metin Tabanlı Görüntü CAPTCHA

instagram viewer

Metin tabanlı CAPTCHA, bir dizi kelime veya kelime öbeği ya da farklı harf, sayı ve sembollerin rastgele bir kombinasyonunu kullanır. Yorumlanması biraz zor olan, yabancılaşmış bir biçimde bir karakter dizisini temsil eder.

Bunlar, bozulma, döndürme, çevirme, sallanma, büyük harf stili ve bitişik karakterlerle örtüşmeyi içerir. Bu tekniği geliştirmek için, bir CAPTCHA görüntü boyunca rastgele dağıtılmış çizgiler, yaylar veya noktalar gibi grafikler içerebilir.

2. Ses CAPTCHA'sı

Sesli CAPTCHA, metin tabanlı CAPTCHA'lara alternatif olarak hizmet verir ve görme engelli kullanıcılara hitap eder. Audio CAPTCHA, kullanıcının doğru bir şekilde girmesi gereken bir dizi harf veya rakamdan oluşan bir ses kaydı sunar. Yine, bu sefer eklenmiş arka plan gürültüsü şeklinde bozulma var. Unutulmaması gereken ilginç bir şey, Python CAPTCHA modülünün yalnızca sayılarla çalışmasıdır.

3. Resim CAPTCHA'sı

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ı, aralarından seçim yapabileceğiniz 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 basit bir aritmetik problemini ek grafik öğeleriyle temsil eder.

Kelime Problemi CAPTCHA, bir dizi kelime veya ilgili öğe sunar ve sizden boşlukları uygun yanıtla doldurmanızı ister.

Bulmaca 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 Sokak Görünümü'nden, gazetelerden, kitaplardan ve daha fazlasından içerik alır.

Hiçbir CAPTCHA ReCAPTCHA, sizden herhangi bir test yapmanızı 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 şu ki ReCAPTCHA özel bilgilerinizi yakalar ilave olarak.

oluşturabilirsiniz HTML, CSS ve JS kullanan CAPTCHA doğrulama formu Python CAPTCHA modülünü kullanmanın yanı sıra.

Python CAPTCHA Modülü

Python, birkaç dakika içinde 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 fazla özelleştirmek için sesinizi ve yazı tipi verilerinizi kullanabilirsiniz.

CAPTCHA modülünü Python ortamınıza kurmak için Terminal penceresini açın ve şunu yazın:

bip düzenlemek captcha

Python Kullanarak Metin Tabanlı Görüntü CAPTCHA Nasıl Oluşturulur

Özelleştirilmiş metin tabanlı görüntü ve ses CAPTCHA'sı oluşturmak için kaynak kodunun tamamı burada mevcuttur. GitHub deposu.

Python kullanarak metin tabanlı bir resim CAPTCHA oluşturmak için şu adımları takip edebilirsiniz:

  1. içe aktar ImageCaptcha bulunan modül CAPTCHA görseli.
    # gerekli kitaplıkları içe aktarma
    itibaren CAPTCHA görseli içe aktarmak ImageCaptcha
  2. CAPTCHA'nız için özel bir genişlik ve yükseklik belirleyin ve bunun bir örneğini oluşturun.
    # boyutları belirtin
    resim = ImageCaptcha (genişlik = 300, yükseklik = 100)
  3. kullanarak kullanıcı girişi olarak bir dizi karakter alın. giriş() metin tabanlı bir CAPTCHA biçimine dönüştürme işlevi.
    # captcha'sını oluşturmak için metni girin
    captcha_text = giriş("Lütfen metni girin: ")
  4. Kullanıcıdan aldığınız metni kullanıcıya iletin. image.generate() CAPTCHA'yı oluşturmak için.
    # metin tabanlı captcha'yı oluştur
    veri = image.generate (captcha_text)
  5. CAPTCHA metnini ve resim dosyası adını uzantısıyla birlikte şuraya iletin: resim.write() oluşturulan görüntüyü kaydetmek için CAPTCHA.
    # captcha resim dosyasını kaydedin
    image.write (captcha_text, (captcha_text) + ".png")

Python Kullanarak Metin Tabanlı Görüntü CAPTCHA'nın Çıktısı

Bu modülün en iyi özelliklerinden biri, aynı metni farklı renklerde, stillerde ve çarpıklıkta oluşturmasıdır. Bunlar üretilen örneklerden birkaçı.

Bu, aynı program aracılığıyla oluşturulan başka bir büyüleyici tasarımdır.

Python Kullanarak Sesli CAPTCHA Nasıl Oluşturulur

Python kullanarak sesli bir CAPTCHA oluşturmak için şu adımları izleyin:

  1. içe aktar AudioCaptcha gelen modül captcha.ses.
    # gerekli kitaplıkları içe aktarma
    itibaren captcha.ses içe aktarmak AudioCaptcha
  2. Bir AudioCaptcha() örneği oluşturun.
    # bir ses örneği oluşturma
    ses = AudioCaptcha()
  3. kullanarak kullanıcı girişi olarak rakamları alın. giriş() ses CAPTCHA'sını oluşturma işlevi.
    # audio captcha numarası, örneğin: 32135
    captcha_text = giriş("Lütfen numara giriniz: ")
  4. Kullanıcıdan aldığınız metni şuraya iletin: audio.generate() CAPTCHA'yı oluşturmak için.
    # ses tabanlı captcha'yı oluştur
    audio_data = audio.generate (captcha_text)
  5. CAPTCHA metnini ve ses dosyası adını uzantısıyla birlikte şuraya iletin: ses.yaz() oluşturulan ses CAPTCHA'sını kaydetmek için.
    # ses dosyasını kaydet
    audio.write (kaptcha_metni, "ses"+captcha_text+'.wav')

sayıları girerseniz 970322, bu sesli CAPTCHA programı bir ses970322.wav Bir grup arka plan gürültüsüyle sırayla rakamları konuşan dosya.

CAPTCHA'nın Birçok Kullanımı

Bir CAPTCHA'nın birincil işlevi, bir web sitesinde spam ve botlar tarafından kötüye kullanımı önlemektir. Botların onları olumsuz yanıtlarla doldurmasını önleyerek çevrimiçi anketlerin doğruluğunun korunmasına 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çma deneme sayısını kısıtlarlar.

CAPTCHA ayrıca otomatik yorumları önlemeye yardımcı olabilir ve çözülmesi zor olan ödeme ağ geçitlerinin güvenliğini sağlamaya yardımcı olabilir.