Simulare il codice di sicurezz CAPTCHA in ASP

Il codice di sicurezza CAPTCHA (acronimo di Completely Automated Public Turing test to tell Computers and Humans Apart, ovvero test di Turing pubblico e completamente automatico per distinguere computer e umani) in ASP può essere simulato semplicemente, ma è piuttosto difficile realizzarlo attraverso l’utilizzo di un’immagine.

Il motivo è che ASP non può, nativamente, interagire con i file grafici ma necessita di librerie ad hoc che non tutti sanno utilizzare e, soprattutto, che difficilmente sono reperibili nei comnuni servizi di Hosting.

La simulazione del codice CAPTCHA attraverso una stringa di testo non è sicura come attraverso l’utilizzo delle immagini, ma… meglio che nulla, non vi pare?

Passiamo all’esempio pratico.

Abbiamo bisogno di due file per il nostro esperimento: il primo è quello che presenta il modulo HTML da compilare, compreso il codice CAPTCHA, che chiameremo modulo.asp; il secondo è quello che esegue i dati del modulo, inviandoli per email o registrandoli nel database… ora non ci interessa.

Iniziamo dal codice del file modulo.asp:

<%@Language = VBScript%>
<%
    Function CAPTCHA()
        Dim caratteri, codice
        caratteri = ""
        caratteri = caratteri & "0123456789"
        caratteri = caratteri & "abcdefghijklmnopqrstuvwxyz"
        caratteri = caratteri & "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        Randomize()
        Do Until Len(codice) = 7
            carattere = Int((Len(caratteri) * Rnd()))
            codice = codice & Mid(caratteri, carattere, 1)
        Loop
        CAPTCHA = codice
    End Function
    Session("captcha") = CAPTCHA()
%>
<html>
<body>

<form method="post" action="esegui.asp">
    <b>Codice di sucirezza da copiare</b><br><br>
    <%=Session("captcha")%>
    <input type="text" name="captcha">
    <input type="submit" value="Conferma">
</form>

</body>
</html>

Nell’intestazione della pagina generiamo una stringa casuale attraverso una funzione che non casualmente chiamiamo CAPTCHA().

Registriamo poi il suo valore in una variabile di sessione per trasportarlo nella pagina di esecuzione.

In fine, nel corpo della pagina, mettiamo a disposizione dell’utente il modulo, prendendo per il nostro esempio in considerazione solo il campo relativo al codice CAPTCHA.

Passiamo adesso al codice del file esegui.asp:

<%@Language = VBScript%>
<%
    Dim captcha
    captcha = Request.Form("captcha")
%>
<html>
<body>

<%
    If Len(captcha) < 7 Or captcha <> Session("captcha") Then
        Response.Write "Codice di controllo errato :-("
    Else
        Response.Write "Operazione eseguida con successo :-)"
    End If
%>

</body>
</html>

Recuperiamo il valore della casella di testo in cui inseriamo il codice di sicurezza e lo confrontiamo con la variabile di sessione creata precedentemente, offrendo un risultato positivo o negativo a seconda del fatto che la condizione venga soddisfatta o meno.<!– –>

FONTE

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.