Introdotti all'inizio degli anni 2000, i CAPTCHA infastidiscono gli utenti ormai da decenni. Dalla ricerca di immagini di un autobus all'inserimento di una strana sequenza di lettere o alla risoluzione di problemi di matematica, ci sono molti modi in cui i siti ti chiedono di dimostrare che non sei un robot.
Ma ti sei mai chiesto come funzionano i CAPTCHA e perché i siti web ti costringono a risolverli?
Cos'è CAPTCHA?
CAPTCHA è l'acronimo di Test di Turing pubblico completamente automatizzato per distinguere computer e esseri umani. Come suggerisce il nome, distingue tra umani e computer.
Il concetto di base di CAPTCHA si basa sulla mancanza di intelligenza informatica per riconoscere i modelli. Un computer può riconoscere le lettere ma non nei casi in cui sono alterate o presenti con molto rumore di fondo. Gli esseri umani, nel frattempo, sono cablati per generazioni per individuare e identificare i modelli come meccanismo di sicurezza.
Tipi di CAPTCHA
CAPTCHA è disponibile in vari tipi, alcuni di loro sono:
1. Immagine basata su testo CAPTCHA
I CAPTCHA basati su testo utilizzano un insieme di parole o frasi o una combinazione casuale di lettere, numeri e simboli diversi. Rappresenta una sequenza di personaggi in una forma alienata che è un po' difficile da interpretare.
Questi includono distorsione, rotazione, capovolgimento, oscillazione, stile delle maiuscole e sovrapposizione con caratteri adiacenti. Per migliorare questa tecnica, un CAPTCHA può includere grafici come linee, archi o punti in modo casuale, distribuiti in tutta l'immagine.
2. Audio CAPTCHA
Audio CAPTCHA funge da alternativa ai CAPTCHA basati su testo e si rivolge agli utenti ipovedenti. Audio CAPTCHA presenta una registrazione audio di una sequenza di lettere o numeri che l'utente deve inserire correttamente. Di nuovo, c'è distorsione, questa volta sotto forma di rumore di fondo aggiunto. Una cosa interessante da notare è che il modulo Python CAPTCHA funziona solo con i numeri.
3. Immagine CAPTCHA
I CAPTCHA immagine sono un'alternativa ai CAPTCHA immagine basati su testo. Questi sono i tipici CAPTCHA che affronterai quotidianamente.
Questi CAPTCHA ti chiedono di identificare un particolare oggetto come una barca, un camion o un idrante. Li presentano insieme ad altre immagini tra cui scegliere. Questi sono molto più intuitivi rispetto ai test basati su testo e sono più difficili da riconoscere per i robot.
4. Matematica, problema di parole e puzzle CAPTCHA
I CAPTCHA matematici rappresentano spesso un semplice problema aritmetico come 17 + 23, 16 * 10 o 30/10 con l'aggiunta di elementi grafici.
Word Problem CAPTCHA presenta una sequenza di parole o elementi correlati e ti chiede di riempire gli spazi vuoti con la risposta appropriata.
Puzzle CAPTCHA comporta la risoluzione di un mini puzzle, ad esempio facendo scorrere una barra alla lunghezza corretta in modo che il pezzo mancante completi l'immagine.
5. Nessun CAPTCHA ReCAPTCHA
Google possiede ReCAPTCHA che utilizza un'analisi avanzata dei rischi e sfide adattive per prevenire i bot. ReCAPTCHA recupera i contenuti da Google Street View, giornali, libri e altro.
Nessun CAPTCHA ReCAPTCHA richiede di selezionare l'opzione "Non sono un robot" senza chiederti di eseguire alcun test. Ciò è possibile in quanto tiene traccia dei movimenti e identifica il clic. Una cosa da notare è che ReCAPTCHA acquisisce le tue informazioni private anche.
Puoi creare un Modulo di convalida CAPTCHA utilizzando HTML, CSS e JS oltre a utilizzare il modulo Python CAPTCHA.
Il modulo CAPTCHA di Python
Python viene fornito con un fantastico modulo chiamato CAPTCHA che ti aiuta a creare CAPTCHA di immagini e audio basati su testo in pochi istanti. Sebbene il modulo fornisca uno stile di carattere e una voce incorporati, puoi utilizzare la tua voce e i dati del carattere per personalizzare ulteriormente i CAPTCHA.
Per installare il modulo CAPTCHA nel tuo ambiente Python, apri la finestra Terminale e digita:
pippo installare captcha
Come generare un'immagine CAPTCHA basata su testo usando Python
L'intero codice sorgente per la generazione di CAPTCHA audio e immagine basati su testo personalizzati è disponibile in questo Deposito GitHub.
Puoi seguire questi passaggi per creare un'immagine CAPTCHA basata su testo utilizzando Python:
- Importa il ImmagineCaptcha modulo situato in captcha.image.
# importazione delle librerie richieste
da captcha.image importare ImmagineCaptcha - Specifica una larghezza e un'altezza personalizzate per il tuo CAPTCHA e creane un'istanza.
# specificare le dimensioni
immagine = ImageCaptcha (larghezza = 300, altezza = 100) - Prendi una sequenza di caratteri come input dell'utente usando il ingresso() funzione per convertirlo in un formato CAPTCHA basato su testo.
# inserisci il testo per creare il suo captcha
captcha_text = input("Inserisci il testo: ") - Passa il testo che hai ricevuto dall'utente al file immagine.genera() per creare il CAPTCHA.
# genera il captcha basato su testo
data = image.generate (captcha_text) - Passa il testo del CAPTCHA e il nome del file immagine insieme alla sua estensione a immagine.scrivi() per salvare l'immagine generata CAPTCHA.
# salva il file immagine captcha
image.write (testo_captcha, (testo_captcha) + ".png")
Output di immagini CAPTCHA basate su testo utilizzando Python
Una delle migliori caratteristiche di questo modulo è che genera lo stesso testo in diversi colori, stili e asimmetria. Questi sono alcuni degli esempi generati.
Questo è un altro design affascinante generato tramite lo stesso programma.
Come generare un CAPTCHA audio usando Python
Segui questi passaggi per creare un CAPTCHA audio utilizzando Python:
- Importa il Captcha audio modulo da captcha.audio.
# importazione delle librerie richieste
da captcha.audio importare Captcha audio - Crea un'istanza di AudioCaptcha().
# creazione di un'istanza audio
audio = AudioCaptcha() - Accetta le cifre come input dell'utente utilizzando il ingresso() funzione per creare il suo audio CAPTCHA.
# numero captcha audio, ad esempio: 32135
captcha_text = input("Inserisci il numero: ") - Passa il testo che hai ricevuto dall'utente a audio.genera() per creare il CAPTCHA.
# genera il captcha basato sull'audio
audio_data = audio.generate (captcha_text) - Passa il testo del CAPTCHA e il nome del file audio insieme alla sua estensione a audio.write() per salvare il CAPTCHA audio generato.
# salva il file audio
audio.write (testo_captcha, "Audio"+testo_captcha+'.wav')
Se inserisci i numeri 970322, questo programma audio CAPTCHA genererà un file audio970322.wav file che pronuncia le cifre in sequenza con un mucchio di rumore di fondo.
I molti usi del CAPTCHA
La funzione principale di un CAPTCHA è prevenire spam e abusi da parte di bot su un sito web. Aiutano a mantenere l'accuratezza dei sondaggi online impedendo ai bot di inondarli di risposte negative. Agiscono come uno strato di protezione contro gli attacchi di forza bruta e limitano il numero di volte in cui un utente tenta di accedere a un sito web.
CAPTCHA può anche aiutare a prevenire i commenti automatici e può aiutare a proteggere i gateway di pagamento con la loro difficoltà da risolvere.