2000-luvun alussa käyttöön otetut CAPTCHAt ovat ärsyttäneet käyttäjiä jo vuosikymmeniä. On olemassa monia tapoja, joilla sivustot pyytävät sinua todistamaan, ettet ole robotti, etsimällä kuvia linja-autosta, syöttämällä oudon kirjainsarjan tai ratkaisemalla matemaattisia tehtäviä.

Mutta oletko koskaan miettinyt, kuinka CAPTCHA toimii ja miksi verkkosivustot pakottavat sinut ratkaisemaan ne?

Mikä on CAPTCHA?

CAPTCHA on lyhenne sanoista Completely Automated Public Turing Test, joka erottaa tietokoneet ja ihmiset toisistaan. Kuten nimestä voi päätellä, se erottaa ihmiset ja tietokoneet.

CAPTCHA: n peruskonsepti perustuu tietokoneälyn puutteeseen kuvioiden tunnistamisessa. Tietokone voi tunnistaa kirjaimet, mutta ei tapauksissa, joissa niitä on muutettu tai niissä on paljon taustamelua. Ihmiset ovat puolestaan ​​joutuneet sukupolvien ajan havaitsemaan ja tunnistamaan kuvioita turvamekanismina.

CAPTCHA-tyypit

CAPTCHAa on eri tyyppejä, joista muutamia ovat:

1. Tekstipohjainen kuva CAPTCHA

Tekstipohjainen CAPTCHA käyttää sanoja tai lauseita tai satunnaista eri kirjainten, numeroiden ja symbolien yhdistelmää. Se edustaa merkkijonoa vieraantuneessa muodossa, jota on hieman vaikea tulkita.

Näitä ovat vääristymät, kierto, kääntäminen, huojunta, isot kirjaimet ja päällekkäisyys viereisten merkkien kanssa. Tämän tekniikan parantamiseksi CAPTCHA voi sisältää grafiikkaa, kuten viivoja, kaaria tai pisteitä satunnaisesti levitettynä koko kuvaan.

2. Ääni CAPTCHA

Audio CAPTCHA toimii vaihtoehtona tekstipohjaisille CAPTCHA: ille ja palvelee näkövammaisia ​​käyttäjiä. Audio CAPTCHA esittää äänitallenteen kirjaimista tai numeroista, jotka käyttäjän on syötettävä oikein. Jälleen esiintyy vääristymiä, tällä kertaa lisätyn taustamelun muodossa. Mielenkiintoinen asia on huomata, että Python CAPTCHA -moduuli toimii vain numeroiden kanssa.

3. Kuva CAPTCHA

Kuvan CAPTCHA: t ovat vaihtoehto tekstipohjaisille kuvien CAPTCHA: ille. Nämä ovat tyypillisiä CAPTCHA: ita, joita käsittelet päivittäin.

Nämä CAPTCHAt pyytävät sinua tunnistamaan tietyn kohteen, kuten veneen, kuorma-auton tai palopostin. He esittävät nämä yhdessä muiden kuvien kanssa, joista valita. Nämä ovat paljon ihmisystävällisempiä kuin tekstipohjaiset testit, ja robottien on vaikeampi tunnistaa niitä.

4. Matematiikka, sanatehtävä ja palapeli CAPTCHA

Matemaattiset CAPTCHAt edustavat usein yksinkertaista aritmeettista ongelmaa, kuten 17 + 23, 16 * 10 tai 30/10, joihin on lisätty graafisia elementtejä.

Sanaongelma CAPTCHA esittää sanojen tai niihin liittyvien kohteiden sarjan ja pyytää sinua täyttämään tyhjät kohdat sopivalla vastauksella.

Puzzle CAPTCHA sisältää minipalapelin ratkaisemisen, kuten tangon liukumisen oikean pituiseksi, jotta puuttuva pala täydentää kuvan.

5. Ei CAPTCHA ReCAPTCHA

Google omistaa ReCAPTCHA: n, joka käyttää kehittynyttä riskianalyysiä ja mukautuvia haasteita robottien estämiseen. ReCAPTCHA hakee sisältöä Google Street View'sta, sanomalehdistä, kirjoista ja muusta.

Ei CAPTCHA ReCAPTCHA edellyttää, että tarkistat "En ole robotti" -vaihtoehdon ilman, että sinua pyydetään suorittamaan testejä. Tämä on mahdollista, koska se seuraa liikkeitä ja tunnistaa napsautuksen. Yksi huomioitava asia on se ReCAPTCHA tallentaa yksityiset tietosi yhtä hyvin.

Voit luoda a CAPTCHA-vahvistuslomake käyttäen HTML: ää, CSS: ää ja JS: ää sekä Python CAPTCHA -moduulin käyttäminen.

Python CAPTCHA -moduuli

Pythonissa on upea CAPTCHA-niminen moduuli, jonka avulla voit luoda tekstipohjaisia ​​kuva- ja ääni-CAPTCHA-tiedostoja hetkessä. Vaikka moduuli tarjoaa sisäänrakennetun kirjasintyylin ja äänen, voit käyttää ääni- ja fonttitietojasi mukauttaaksesi CAPTCHA-tiedostoja entisestään.

Asenna CAPTCHA-moduuli Python-ympäristöösi avaamalla Pääte-ikkuna ja kirjoittamalla:

pip Asentaa captcha

Tekstipohjaisen kuvan luominen CAPTCHA Pythonilla

Koko lähdekoodi mukautetun tekstipohjaisen kuvan ja äänen CAPTCHA: n luomiseksi on saatavilla tässä GitHub-arkisto.

Voit luoda tekstipohjaisen CAPTCHA-kuvan Pythonilla seuraavasti:

  1. Tuo ImageCaptcha moduuli sijaitsee captcha.image.
    # tuodaan tarvittavat kirjastot
    alkaen captcha.image tuonti ImageCaptcha
  2. Määritä mukautettu leveys ja korkeus CAPTCHA: lle ja luo siitä esiintymä.
    # määritä mitat
    kuva = ImageCaptcha (leveys = 300, korkeus = 100)
  3. Ota merkkijono käyttäjän syötteeksi käyttämällä input() -toimintoa muuntaaksesi sen tekstipohjaiseen CAPTCHA-muotoon.
    # kirjoita teksti luodaksesi sen captcha
    captcha_text = input("Kirjoita teksti: ")
  4. Välitä käyttäjältä saamasi teksti käyttäjälle image.generate() luodaksesi CAPTCHA: n.
    # luo tekstipohjainen captcha
    data = image.generate (captcha_text)
  5. Välitä CAPTCHA-teksti ja kuvatiedoston nimi sekä sen pääte image.write() tallentaaksesi luodun kuvan CAPTCHA.
    # tallenna captcha-kuvatiedosto
    image.write (captcha_text, (captcha_text) + ".png")

Tekstipohjaisen kuvan CAPTCHA-tulostus Pythonilla

Yksi tämän moduulin parhaista ominaisuuksista on, että se luo saman tekstin eri väreissä, tyyleissä ja vinouuksissa. Nämä ovat muutamia luotuja esimerkkejä.

Tämä on jälleen yksi kiehtova suunnittelu, joka on luotu saman ohjelman avulla.

Kuinka luoda ääni-CAPTCHA Pythonilla

Luo ääni-CAPTCHA Pythonilla seuraavasti:

  1. Tuo AudioCaptcha moduuli alkaen captcha.audio.
    # tuodaan tarvittavat kirjastot
    alkaen captcha.audio tuonti AudioCaptcha
  2. Luo AudioCaptcha()-esiintymä.
    # luodaan ääniinstanssi
    ääni = AudioCaptcha()
  3. Ota numerot käyttäjän syötteeksi käyttämällä input() -toimintoa, jolla voit luoda CAPTCHA-äänen.
    # audio captcha-numero, esim.: 32135
    captcha_text = input("Anna numero: ")
  4. Välitä käyttäjältä saamasi teksti audio.generate() luodaksesi CAPTCHA: n.
    # luo äänipohjainen captcha
    audio_data = audio.generate (captcha_text)
  5. Välitä CAPTCHA-teksti ja äänitiedoston nimi sekä sen pääte audio.write() tallentaaksesi luodun äänen CAPTCHA.
    # tallenna äänitiedosto
    audio.write (captcha_text, "audio"+captcha_text+'.wav')

Jos syötät numerot 970322, tämä ääni-CAPTCHA-ohjelma luo audio970322.wav tiedosto, joka puhuu numerot peräkkäin taustakohinalla.

CAPTCHA: n monet käyttötarkoitukset

CAPTCHA: n ensisijainen tehtävä on estää roskapostia ja robottien väärinkäyttöä verkkosivustolla. Ne auttavat ylläpitämään online-kyselyiden tarkkuutta estämällä botteja tulvimasta niitä negatiivisilla vastauksilla. Ne toimivat suojakerroksena raakoja hyökkäyksiä vastaan ​​ja rajoittavat kuinka monta kertaa käyttäjä yrittää kirjautua verkkosivustolle.

CAPTCHA voi myös auttaa estämään automaattisia kommentteja ja turvata maksuyhdyskäytäviä niiden ratkaisemisen vaikeuksissa.