Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Controllo captcha che viene aggirato

    Salve,Ho una barra scorrevole in cui gli utenti possono inserire un messaggio a piacere...
    Per via di messaggi automatici indesiderati sono stato costretto a inserire un controllo captcha,ora c'è un mistero....Inserendo un captcha sbagliato giustamente mi rimarca l errore è lo script non va avanti,però continuo a riicevere questi messaggi indesiderati!!!

    Questo è lo script

    file captcha.php
    Codice PHP:
    <?
        session_start
    ();
        
    $stringa md5(microtime());
        
    $risultato substr($stringa05);
        
    $immagine imagecreatefromjpeg("captcha.jpg");
        
    $testo imagecolorallocate($immagine255255255);
        
    imagestring($immagine32010$risultato$testo);
        
    $_SESSION['CONTROLLO'] = $risultato;
        
    header("Content-type: image/jpeg");
        
    imagejpeg($immagine);
    ?>
    Poi questo è il file in cui ho il form per l invio dei messaggi
    Codice PHP:

    <form action="barrasend.php" method="post" enctype="multipart/form-data">
     <table style="padding-top: 20px;" align="left" border="0" cellpadding="2" cellspacing="1" width="480">
                  <tbod><tr><td align="left"><h4>Nome</h4><input name="nome" cols="30"  id="nome" type="text"></td> </tr>
                   <tr>
                    <td align="left" ><h4>Messaggio</h4><textarea name="testo" cols="30" rows="3" id="testo"></textarea></td>
                    <input type="hidden" name="ipscrivente2" value="<?echo$_SERVER['REMOTE_ADDR'?>"
                  </tr>
    <center> <td align="center"><h4>Controllo Captcha</h4>[img]captcha.php[/img]
    <input type="text" id="codice_sicurezza" name="codice_sicurezza" />
    <input name="Submit"  value="Invia" type="submit">
                                        
                          </center>            


            
                </tbody></table>
              </form>
    Questa invece la pagina che fa il controllo
    Codice PHP:
    <?
    //Apro la sessione e...  
    session_start();  
    include
    "config.php";

    //recupero i valori dal form precedente

    $nome2=addslashes($_POST['nome']); 
    $testo2=addslashes($_POST['testo']); 
    $ipscrivente=addslashes($_POST['ipscrivente2']); 

    $testo strip_tags$testo2 );
    $nome strip_tags$nome2 );
    if (
    $_POST['codice_sicurezza'] != $_SESSION['CONTROLLO'])
    {
     echo 
    "<script>
        alert(\"Controllo CAPTCHA non superato reinserisci i caratteri!\");
        location = \"index.php\"
    </script>"
    ;

    exit;

    }

    if(
    $nome=="" ||$testo==""){
         echo 
    "<script>
        alert(\"Non hai compilato tutti campi richiesti!\");
        location = \"barra.php\"
    </script>"
    ;
    exit;
    }



       
    //inserimento in sondaggio
      
    $query "INSERT into barradistato (nomestato,messaggiostato,ip) VALUES
      ('
    $nome','$testo','$ipscrivente')";
      
    $result = @mysql_query($query) or die (mysql_error());


    ?><SCRIPT LANGUAGE="JavaScript">alert("Messaggio inviato...leggi sulla barra scorrevole!!!");parent.document.location.href="index.php";</SCRIPT>
    Come diavolo fa ad aggirare questo captcha???Ripeto inserendo i caratteri sbagliata lo script funziona..però misteriosamente i messaggi continuano ad arrivare nella barra scorrevole!

  2. #2
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    L'errore è nella INSERT sulla pagina di controllo, php esegue sempre tutto il codice della pagina quindi metti la INSERT dentro una condizione tipo
    codice:
    if(captcha sbagliato) 
            errore;
    else
           INSERT;
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    70
    Originariamente inviato da Andy_87
    L'errore è nella INSERT sulla pagina di controllo, php esegue sempre tutto il codice della pagina quindi metti la INSERT dentro una condizione tipo
    codice:
    if(captcha sbagliato) 
            errore;
    else
           INSERT;
    non direi, lo script dovrebbe terminare grazie alla funzione exit...

  4. #4
    hai già provato ad accorciare la vita della sessione?

    Poi a prima vista non mi convince il redirect che fai:

    Codice PHP:
     location = \"index.php\" 
    index.php è la pagina dove sta il form?

  5. #5
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    Originariamente inviato da civre
    non direi, lo script dovrebbe terminare grazie alla funzione exit...
    be..io una prova la farei comunque.
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  6. #6
    probabilmente si è fatto una banale pagina html in locale con la copia del tuo form ma senza l'input legato al captcha.

    aggiungi un
    Codice PHP:
    if (! isset($_POST['codice_sicurezza']) ... 

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    70
    avrebbe più senso mettere
    Codice PHP:
    if ($_POST['codice_sicurezza'] == $_SESSION['CONTROLLO']){
           ... 
           
    //inserimento in sondaggio 
           
    ...
    }
    else{
           ... 
           
    // errore 


  8. #8
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    Originariamente inviato da civre
    avrebbe più senso mettere
    Codice PHP:
    if ($_POST['codice_sicurezza'] == $_SESSION['CONTROLLO']){
           ... 
           
    //inserimento in sondaggio 
           
    ...
    }
    else{
           ... 
           
    // errore 

    Esatto, come dicevo io, però come dice google01, controllando anche che $_POST['codice_sicurezza'] non sia vuoto!
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  9. #9
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    controllare anche che $_SESSION['CONTROLLO'] non sia vuoto
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  10. #10
    Originariamente inviato da google01
    probabilmente si è fatto una banale pagina html in locale con la copia del tuo form ma senza l'input legato al captcha.

    aggiungi un
    Codice PHP:
    if (! isset($_POST['codice_sicurezza']) ... 
    Sto adottando questa soluzione....fino ad ora regge

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.