Il reCAPTCHA

Come è fatto

Il Sistema CAPTCHA è basato su un'architettura Client-Server, di cui abbiamo già parlato in altri articoli. Secondo tale architettura, è possibile individuare infatti un Client, che richiede un servizio, e un Server che lo consente. In questo caso il Client è l'utente che deve risolvere il CAPTCHA mentre il Server è quello che controlla se il CAPTCHA è stato risolto oppure no.

Per semplicità, ci accosteremo alla tipologia tipica di CAPTCHA, ovvero quella che consiste nel riscrivere la serie di caratteri contenuta nell'immagine nell'apposito box. Tre elementi principali costituiscono il CAPTCHA:

1. Il Client 
E' l'utente che deve risolvere il CAPTCHA. Il sito web propone all'utente una API (Application Programming Interface), detto ReCaptcha Widget, ovvero un'interfaccia grafica con la quale l'utente deve interagire per risolvere il CAPTCHA. Come vedremo tra un istante, il ReCaptcha Widget è l'interfaccia grafica del ReCaptcha. Come riconoscerete dalla figura, un tipico ReCaptcha Widget è il seguente (nella figura possiamo notare il "box" dove l'utente inserisce la soluzione del Captcha):


2. Il Lato Server 
E' il server dove sono memorizzate e recuperate le immagini, con le rispettive informazioni nonché dove poi viene verificata la soluzione immessa dall'utente. 

3. Il ReCaptcha
Il ReCaptcha è il cuore di tutto il sistema CAPTCHA. Esso si frappone infatti tra Client e Server e svolge un ruolo di primaria importanza. Un ReCaptcha, ponte di collegamento tra il Client e il Server, è la parte attiva del sistema, nonché il vero e proprio servizio web che preleva le immagini contenute nel Server e memorizza una serie di informazioni utili allo svolgimento delle operazioni necessarie. Scritta in linguaggio JAVA o AJAX, in termini informatici, il ReCaptcha è un "oggetto" in cui sono memorizzate le seguenti informazioni:

URL (Unified Request Locator) dell'immagine prelevata: codice identificativo univoco dell'immagine.  

ReCaptcha_Challenge_Field() : equivale alla soluzione effettiva del CAPTCHA. 

ReCaptcha_Response_Field() : equivale alla "soluzione" che l'utente inserisce nel box. Corrisponde a ciò che l'utente immette nel box. 

Chiave Pubblica (Public Key): elemento per criptare le informazioni del ReCaptcha. La comunicazione tra Client e Server deve essere "protetta" , in quanto è necessario nascondere determinate informazioni (come il ReCaptcha_Challenge_Field() contenente la soluzione effettiva) allo scopo di evitare che un sinistro se ne impossessi durante l'invio e compromettere l'intero sistema. Se un sinistro venisse a conoscenza della "soluzione effettiva" del CAPTCHA, infatti, quest'ultimo diverrebbe un Broken CAPTCHA, e quindi non sarebbe più riutilizzabile.

Funzioni (Methods): sono le funzioni tipiche che si possono effettuare sul ReCaptcha. Alcune di queste sono:

A. Reload()      : Ricarica il ReCaptcha con il conseguente prelievo di un'altra immagine.
BSwitch_Type()  : Cambia il tipo di immagine.
C. Show_Help()    : Consente la visualizzazione di istruzioni di help che aiutano l'utente inesperto.