Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56

    Captcha soluzione senza GD

    Ciao a tutti,
    volevo sperimentare con voi una possibile soluzione al CAPTCHA(Test di turing per distinguere un essere umano da una macchina).

    Visto che non tutti i server dispongono delle librerie GD e quindi non tutti gli i programmatori PHP possono fare in modo di non avere iscrizioni inutili ai propri siti attraverso la visualizzazione di immagini contenenti un codice alfanumerico(che è possibile creare solo con le librerie GD preinstallate) , volevo proporre la mia idea:

    Immaginiamoci il classico form in cui l'utente inserisce i suoi dati nick, password etc..
    Alla fine c'è un campo vuoto con a lato un codice generato dinamicamente (Alfanumerico o anche numerico) e una frase del tipo: digita il terzo il quinto e il sesto carattere del codice visualizzato (chiaramente terzo, quinto e sesto cambieranno dinamicamente magari al posto di "terzo" possiamo mettere "5°" etc..).

    In questo modo si ha un pò più di sicurezza.. o sbaglio?
    I robot avrebbero facilmente accesso a inutili iscrizzioni?

    A voi i commenti..

  2. #2

    Re: Captcha soluzione senza GD

    Originariamente inviato da DMM
    In questo modo si ha un pò più di sicurezza.. o sbaglio?
    I robot avrebbero facilmente accesso a inutili iscrizzioni?

    A voi i commenti..
    secondo me poca...

    hai già pensato di usare flash come alternativa alle GD ? ^^
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  3. #3
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56
    Si anche il flash è una valida alternativa...
    già..
    però non mi sembrava una brutta idea la mia...
    :-D

    In lfash come faresti?
    passi il codice da PHP a flash, salvando il codice in una variabile di sessione,flash lo visualizza.. e poi verifichi se il codice digitato è stato scritto correttamente?

  4. #4
    Originariamente inviato da DMM
    In lfash come faresti?
    passi il codice da PHP a flash, salvando il codice in una variabile di sessione,flash lo visualizza.. e poi verifichi se il codice digitato è stato scritto correttamente?
    esatto.

    x la tua idea...
    cosa intendi per codice generato dinamicamente?
    parli sempre di un'immagine?
    There are 10 types of people in the world: Those who understand binary, and those who don't.

  5. #5
    A me sembra una buona idea.

    Ecco come potrebbe essere il procedimento:

    1) Viene generata una stringa di 32 caratteri tramite la funzione md5

    2) Vengono generati n numeri da 1 a 32 (in base a quanti numeri vanno inseriti nel form) che saranno le posizioni.

    3) Il codice ed i numeri generati vengono memorizzati in sessione

    4) Il tutto viene mostrato all'utente che dovrà inserire i numeri corrispondenti alle posizioni (magari separati da qualcosa per poter utilizzare explode e facilitare le successive operazioni)

    5) Con str_pos (se non sbaglio) si controlla ogni posizione e se tutte corrispondono si accetta la registrazione altrimenti ciao ciao!

    Bella idea, mi piace! Forse anche più sicura dei captcha perchè i bot si evolvono. Con questo sistema il bot dovrebbe tener conto anche della lingua del sito e dell'eventuale "codice" del sito.

    Mi spiego.
    Se il sito è in inglese le istruzioni saranno in inglese e quindi il bot dovrebbe poter leggere in inglese le istruzioni.

    Inoltre per codice intendo qualcosa tipo:

    "Per poterti registrare inserisci la prima la seconda e la terza cifra"

    "Entra nel team dopo aver inserito la quinta, la trentaduesima e la ventesima cifra"

    "Per non farti sparare (nel caso di un clan per esempio!) devi fornirci la settima la decima la quindicesima cifra del codice alla destra/alla sinistra/sopra/sotto il form"

    Insomma, ci sono molti parametri che dovrebbe prendere in considerazione il bot! Mi sembra un'ottima idea!
    Complimenti!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #6
    ma invece un banale javascript sarebbe troppo facile ? :master:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56
    X MASCALZONE:
    no, intendo un codice alfanumerico testuale!

  8. #8
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56
    è anche vero che se i bot riescono a isolare la frase (es) "scrivi il primo e terzo carattere del codice" ,
    basta fare una verifica all'interno della frase x vedere se esiste la parola "primo" , "secondo" , "terzo" etc..
    e la protezione è saltata..anche se chiaramente poi devono scrivere il codice nel giusto ordine...

  9. #9
    grazie per avermi ignorato


    cmq io dicevo una cosa tipo questa:
    codice:
    <?php
    if(
    	isset($_POST['hideciapcia'], $_POST['ciapcia']) &&
    	strlen(trim($_POST['hideciapcia'])) > 0 && 
    	$_POST['ciapcia'] === $_POST['hideciapcia']
    ) {
    	echo 'Bravo utente!';
    }
    ?>
    <script type="text/javascript">
    var ciapcialength = 8;
    var ciapciaid = 'ciapcia';
    function createCiapcia() {
    	if(!ciapciaid.innerHTML)
    		ciapciaid = document.getElementById(ciapciaid);
    	var chars = new Array();
    	for(var a = 0; a < 26; a++)
    		chars.push(String.fromCharCode(a+97));
    	for(var a = 0; a < 10; a++)
    		chars.push(String.fromCharCode(a+48));
    	var extract = parseInt(Math.random() * chars.length);
    	if(parseInt(Math.random() * 2) == 0)
    		chars[extract] = chars[extract].toUpperCase();
    	ciapciaid.innerHTML += chars[extract];
    	if(ciapcialength-- > 1)
    		setTimeout(createCiapcia, parseInt(Math.random() * 200));
    	else {
    		document.getElementById('sendinfo').disabled = false;
    		document.getElementById('verify').value = ciapciaid.innerHTML;
    	}
    }
    </script>
    <body onload="createCiapcia();">
    <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    	<span id="ciapcia"></span>
    
    	<input id="verify" type="hidden" name="hideciapcia" />
    	<input type="text" name="ciapcia" />  
    	<input id="sendinfo" disabled="true" type="submit" value="enter" />
    </form>
    </body>
    non ho mai capito se gli screenreader riescono a beccarsi anche il JavaScript me credo proprio di no ... che mi dite ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Utente bannato
    Registrato dal
    Jun 2005
    Messaggi
    56
    è una idea...
    però se un utente ha i java disabilitati?
    non può registrarsi?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.