[webaccessibile] R: Esperimento con CAPTCHA accessibile
Cyberbuddha
cyberbuddha a gmail.com
Lun 5 Mar 2007 12:11:03 CET
Il primo dei 3 esempi è interessante ma con il limite, come sottolineavi,
della durata della sessione.
Per ovviare a questo inconveniente si potrebbe utilizzare un hash [1] a
partire dal nome del campo a cui aggiungere una specie di password
contenente un riferimento temporale, come ad esempio la data corrente:
"miapsw050307".
A questo punto, utilizzando ad esempio l'SHA-1 [2], si otterrebbero:
URNKQKhdVPJES/pbsYiXNs8bS/Y= (hash di nome_miapsw050307)
RLKl8z+6BZxM1p20JFU8qobrcfA= (hash di cognome_miapsw050307)
Questi valori nello specifico cambierebbero ogni giorno e l'unico problema
(comunque facilmente risolvibile) si verificherebbe se qualcuno inizia a
riempire il form prima di mezzanotte ed effettuasse il submit praticamente
il giorno successivo.
Sarebbe poi utile fare la stessa cosa sia per il nome del form che per il
nome della pagina nell'ACTION, rendendo più difficoltoso per un bot ricavare
dal codice della pagina il form da analizzare.
Chiaramente il ragionamento è valido per i bot automatici e non contro
qualcuno che si mette li a studiare il meccanismo, situazione che
richiederebbe uno sforzo aggiuntivo per rendere il codice XHTML sempre
diverso e a prova di parsing automatico...
Ma il discorso dell'antifurto sulla penna fatto nell'articolo calza bene :)
Ciao,
Cyb
Glossario per chi non ha dimistichezza con i termini tecnici
[1] L'hash, detto anche checksum, è il risultato di una operazione
irreversibile che prende come input un testo e ne genera un altro di una
lunghezza predefinita, a prescindere da quella del testo in input.
Esaminando l'hash non si può risalire al testo iniziale, ma effettuando la
stessa operazione più volte il risultato non cambia quindi si possono
effettuare comparazioni.
La stessa logica viene effettuata anche per verificare che ad esempio un
file (che, banalizzando, è formato da caratteri...) sia proprio quello
originale sul quale l'autore ha effettuato l'hash e non abbia subito
modifiche.
[2] SHA-1 (Secure Hash Algorithm) è uno degli algoritmi utilizzabili per
generare l'hash. Un altro algoritmo molto usato è l'MD5, più veloce ma meno
complesso dell'SHA-1.
Maggiori informazioni sulla lista
webaccessibile