CAPTCHA's, geïntroduceerd in de vroege jaren 2000, irriteren gebruikers nu al tientallen jaren. Van het vinden van afbeeldingen van een bus tot het invoeren van een rare reeks letters of het oplossen van wiskundige problemen, er zijn veel manieren waarop sites je vragen om te bewijzen dat je geen robot bent.

Maar heb je je ooit afgevraagd hoe CAPTCHA werkt en waarom websites je dwingen om ze op te lossen?

Wat is CAPTCHA?

CAPTCHA staat voor Completely Automated Public Turing-test om computers en mensen uit elkaar te houden. Zoals de naam al doet vermoeden, maakt het onderscheid tussen mensen en computers.

Het basisconcept van CAPTCHA is gebaseerd op het gebrek aan computerintelligentie om patronen te herkennen. Een computer kan letters herkennen, maar niet in gevallen waarin ze zijn gewijzigd of veel achtergrondruis hebben. Mensen zijn ondertussen generaties lang vastbesloten om patronen te herkennen en te identificeren als veiligheidsmechanisme.

Soorten CAPTCHA

CAPTCHA is er in verschillende soorten, een paar daarvan zijn:

1. Op tekst gebaseerde afbeelding CAPTCHA

Op tekst gebaseerde CAPTCHA gebruikt een reeks woorden of woordgroepen of een willekeurige combinatie van verschillende letters, cijfers en symbolen. Het vertegenwoordigt een opeenvolging van karakters in een vervreemde vorm die een beetje moeilijk te interpreteren is.

Deze omvatten vervorming, rotatie, spiegelen, wiebelen, kapitalisatiestijl en overlapping met aangrenzende tekens. Om deze techniek te verbeteren, kan een CAPTCHA afbeeldingen bevatten zoals lijnen, bogen of punten op een willekeurige manier, verspreid over de afbeelding.

2. Audio-CAPTCHA

Audio-CAPTCHA dient als alternatief voor op tekst gebaseerde CAPTCHA's en is geschikt voor gebruikers met een visuele beperking. Audio CAPTCHA presenteert een audio-opname van een reeks letters of cijfers die de gebruiker correct moet invoeren. Opnieuw is er vervorming, dit keer in de vorm van toegevoegde achtergrondruis. Een interessant ding om op te merken is dat de Python CAPTCHA-module alleen met getallen werkt.

3. Afbeelding CAPTCHA

CAPTCHA's met afbeeldingen zijn een alternatief voor op tekst gebaseerde CAPTCHA's met afbeeldingen. Dit zijn de typische CAPTCHA's waar je dagelijks mee te maken krijgt.

Deze CAPTCHA's vragen u om een ​​bepaald object te identificeren, zoals een boot, vrachtwagen of brandkraan. Ze presenteren deze naast andere afbeeldingen om uit te kiezen. Deze zijn veel mensvriendelijker dan op tekst gebaseerde tests en ook moeilijker te herkennen door bots.

4. Wiskunde, woordprobleem en puzzel CAPTCHA

Wiskundige CAPTCHA's vertegenwoordigen vaak een eenvoudig rekenkundig probleem zoals 17 + 23, 16 * 10 of 30/10 met toegevoegde grafische elementen.

Woordprobleem CAPTCHA presenteert een reeks woorden of verwante items en vraagt ​​u om de lege plekken in te vullen met het juiste antwoord.

Puzzel CAPTCHA omvat het oplossen van een mini-legpuzzel, zoals het verschuiven van een balk naar de juiste lengte, zodat het ontbrekende stuk de afbeelding compleet maakt.

5. Geen CAPTCHA ReCAPTCHA

Google is eigenaar van ReCAPTCHA, dat geavanceerde risicoanalyse en adaptieve uitdagingen gebruikt om bots te voorkomen. ReCAPTCHA haalt content op uit Google Street View, kranten, boeken en meer.

Geen CAPTCHA ReCAPTCHA vereist dat u de optie "Ik ben geen robot" aanvinkt zonder u te vragen tests uit te voeren. Dit is mogelijk omdat het de bewegingen volgt en de klik identificeert. Een ding om op te merken is dat ReCAPTCHA legt uw privégegevens vast ook.

U kunt een CAPTCHA-validatieformulier met behulp van HTML, CSS en JS evenals het gebruik van de Python CAPTCHA-module.

De Python CAPTCHA-module

Python wordt geleverd met een fantastische module genaamd CAPTCHA waarmee je in enkele ogenblikken op tekst gebaseerde CAPTCHA's voor afbeeldingen en audio kunt maken. Hoewel de module een ingebouwde lettertypestijl en stem biedt, kunt u uw stem en lettertypegegevens gebruiken om CAPTCHA's nog verder aan te passen.

Om de CAPTCHA-module in uw Python-omgeving te installeren, opent u het Terminal-venster en typt u:

Pip installeren captcha

Een op tekst gebaseerde afbeelding CAPTCHA genereren met behulp van Python

De volledige broncode voor het genereren van op tekst gebaseerde beeld- en audio-CAPTCHA op maat is hierin beschikbaar GitHub-opslagplaats.

U kunt deze stappen volgen om een ​​op tekst gebaseerde afbeelding CAPTCHA te maken met behulp van Python:

  1. Importeer de ImageCaptcha module gelegen in captcha.afbeelding.
    # de vereiste bibliotheken importeren
    van captcha.afbeelding importeren ImageCaptcha
  2. Geef een aangepaste breedte en hoogte op voor uw CAPTCHA en maak er een instantie van.
    # geef afmetingen op
    afbeelding = ImageCaptcha (breedte = 300, hoogte = 100)
  3. Neem een ​​reeks tekens als gebruikersinvoer met behulp van de invoer() functie om het te converteren naar een op tekst gebaseerd CAPTCHA-formaat.
    # voer de tekst in om de captcha te maken
    captcha_tekst = invoer("Voer a.u.b. tekst in: ")
  4. Geef de tekst die je van de gebruiker hebt gekregen door aan de afbeelding.genereren() om de CAPTCHA te maken.
    # genereer de op tekst gebaseerde captcha
    data = afbeelding.genereren (captcha_tekst)
  5. Geef de tekst van de CAPTCHA en de naam van het afbeeldingsbestand met de extensie door aan afbeelding.schrijven() om de gegenereerde afbeelding CAPTCHA op te slaan.
    # sla het captcha-afbeeldingsbestand op
    afbeelding.schrijven (captcha_tekst, (captcha_tekst) + ".png")

Uitvoer van op tekst gebaseerde afbeelding CAPTCHA met behulp van Python

Een van de beste eigenschappen van deze module is dat het dezelfde tekst genereert in verschillende kleuren, stijlen en scheefheid. Dit zijn enkele van de gegenereerde voorbeelden.

Dit is nog een ander fascinerend ontwerp dat via hetzelfde programma is gegenereerd.

Hoe een audio-CAPTCHA te genereren met behulp van Python

Volg deze stappen om een ​​audio-CAPTCHA te maken met Python:

  1. Importeer de AudioCaptcha moduul van captcha.audio.
    # de vereiste bibliotheken importeren
    van captcha.audio importeren AudioCaptcha
  2. Maak een instantie van AudioCaptcha().
    # een audio-instantie maken
    audio = AudioCaptcha()
  3. Neem cijfers als gebruikersinvoer met behulp van de invoer() functie om zijn audio-CAPTCHA te maken.
    # audio captcha-nummer, bijvoorbeeld: 32135
    captcha_tekst = invoer("Vul het nummer in: ")
  4. Geef de tekst die je van de gebruiker hebt gekregen door aan audio.genereren() om de CAPTCHA te maken.
    # genereer de op audio gebaseerde captcha
    audio_data = audio.genereren (captcha_tekst)
  5. Geef de tekst van de CAPTCHA en de naam van het audiobestand met de extensie door aan audio.write() om de gegenereerde audio-CAPTCHA op te slaan.
    # sla het audiobestand op
    audio.schrijven (captcha_tekst, "geluid"+captcha_tekst+'.wav')

Als je de cijfers invoert 970322, zal dit audio-CAPTCHA-programma een audio970322.wav bestand dat de cijfers achter elkaar uitspreekt met een hoop achtergrondgeluid.

De vele toepassingen van CAPTCHA

De primaire functie van een CAPTCHA is het voorkomen van spam en misbruik door bots op een website. Ze helpen de nauwkeurigheid van online peilingen te behouden door te voorkomen dat bots ze overspoelen met negatieve reacties. Ze fungeren als een beschermingslaag tegen brute force-aanvallen en beperken het aantal keren dat een gebruiker probeert in te loggen op een website.

CAPTCHA kan ook helpen om geautomatiseerde opmerkingen te voorkomen en kan helpen bij het beveiligen van betalingsgateways met hun moeilijkheid om op te lossen.