Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854

    Continuo SPAM sul modulo contatti

    Salve a tutti,
    uso sempre la stessa sintassi e codice per la realizzazione del modulo contatti, l'ho applicata in diversi siti web, ma in uno di questi lo spam arriva sempre!

    Ho cambiato struttura del codice per le varie verifiche
    Ho cambiato il codice di sicurezza, attualmente ho inserito il codice reCaptcha

    I messaggi di SPAM non fanno altro che arrivare ugualmente.

    Vi posto il codice:
    Codice PHP:
                //CHIAVE privata e pubblica sono state dichiarate in un altro file                                 
                if(isset($_GET["upload"]) and $_GET["upload"]==1){
     
               //load recaptcha file
                require_once('libraries/captcha/recaptchalib.php');
               //check recaptcha fields
                $resp = recaptcha_check_answer ($privatekey,
                                                              $_SERVER["REMOTE_ADDR"],
                                                              $_POST["recaptcha_challenge_field"],
                                                              $_POST["recaptcha_response_field"]);
     
               if($resp->is_valid){

                       if($_POST['nome']==NULL){ echo '<div class="warning">Campo nome vuoto</div>';}
                       
                       elseif($_POST['mail']==NULL){ echo '<div class="warning">Campo email vuoto</div>';}
     
                       elseif($_POST['messaggio']==NULL){ echo '<div class="warning">Messaggio testo vuoto</div>';}

                else {

                $messaggio="Hai ricevuto un nuovo messaggio:
                Nome: ".$_POST['nome']."
                Telefono: ".$_POST['telefono']."
                Email: ".$_POST['mail']."
                Messaggio: ".stripslashes($_POST['messaggio']);

                $a = mail($email_sito_web, "Messaggio da $nome_sito_web", $messaggio, "From: ".$_POST['nome']." <".$_POST['mail'].">") or print ("<script> alert('Errore invio dell'e-mail!')</script>"); 

                echo '<div class="success">Messaggio inviato correttamente</div>';            }                            
                } else { 
                
                echo '<div class="errore">Errore nell\'invio o messaggio di sicurezza errato</div>';

                }
    } ?>
     
    <script type="text/javascript"> var RecaptchaOptions = { theme : 'clean' }; </script>
     
    <form id="two" name="modulo" method="POST" action="index.php?lang=it&amp;page=7&amp;upload=1" onSubmit="return formCheck(this)">

    <fieldset id="personal">
         <legend>Modulo contatti</legend>
         <label>Nome</label>
         <input name="nome" type="text" size="35" value="<?php echo (isset($_POST['nome']) ? $_POST['nome'] : ''); ?>"/>
     
        <br />
     
        <label for="firstname">Telefono</label>
         <input name="telefono" type="text" size="35" value="<?php echo (isset($_POST['telefono']) ? $_POST['telefono'] : ''); ?>"/>
     
        <br />
     
        <label for="mail">Email</label>
        <input type="text" name="mail" size="35" value="<?php echo (isset($_POST['mail']) ? $_POST['mail'] : ''); ?>">
     
        <br />
     
        <label for="message">Messaggio</label>
        <textarea name="messaggio" cols="45" rows="8"><?php echo (isset($_POST['messaggio']) ? $_POST['messaggio'] : ''); ?></textarea>
     
         <br /><br />
     
          <center>
          
          <?php
          
    // load recaptcha file
          
    require_once('libraries/captcha/recaptchalib.php');
          
    // display recaptcha test fields
          
    echo recaptcha_get_html($publickey);
          
    ?>
     
         </center>
       
         <br /><br />
     
          <center><input id="button2" type="submit" value="Invia" title="Invia"></center>
     
    </fieldset>
     
    </form>
    Ultima modifica di Felino; 05-02-2014 a 11:00

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Io sul mio sito ho messo un codice semplicissimo e non mi arriva niente (prima con i captcha invece sì).

    Genero a caso 2 numeri compresi tra 1 e 9, metto la somma in sessione, chiedo all'utente di scrivere la somma in un campo del form e alla ricezione dei dati, prima dell'effettivo invio del messaggio, verifico che sia uguale alla somma che si trova in sessione.

  3. #3
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Esatto, anche io avevo escogitato qualcosa del genere tempo fa, ma evidentemente non ha funzionato.

    Fino alla generazione dei numeri casuali e relativa somma ci siamo.

    Come faccio ad aggiungerli in sessione ed effettuare la verifica?

    Grazie.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Io faccio così (metto solo i pezzi interessanti)

    Nel file con il form
    Codice PHP:
    //all'inizio
    $a1 = rand(1,9);
    $a2 = rand(1,9);
    $_SESSION['somma_random'] = $a1 + $a2;
    ...

    //nel tag head, così chi non blocca JS ha subito l'errore
    <script type="text/javascript">
        function checkContatti() {
            ...
            if(form.code.value != <?php echo $a1+$a2 ?>)
            {
                avvisi.innerHTML = "La somma inserta non è corretta";
                form.code.focus();
                return false;
            }
            ...
        }
    </script>
    Nel file che riceve i dati
    Codice PHP:
    ...
    if(
    $_POST['code'] != $_SESSION['somma_random']) 
    {
        
    header("location:result.php?e=wcode");
    }
    ... 
    Ultima modifica di Alhazred; 05-02-2014 a 12:07

  5. #5
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Alhazder, sono pienamente d'accordo con te, qualcosa fatto in casa, ovviamente ben strutturato, ti permette di essere meno vulnerabile se usi una logica tutta tua.

    Ma ciò che non mi da pace è il perchè questo modulo non deve funzionare e risulta così vulnerabile.

    Ci sono milioni di guide in merito che spiegano come usare il reCaptcha, funziona a tutti e a me no? :|

  6. #6
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Alla fine ho optato per dei controlli custom, esempio che un campo deve essere solo numerico o in un determinato formato e al momento non è arrivato più spam.

    Vedrò di testare il reCaptcha presso un altro sito e vedere se mi da lo stesso problema.

    Grazie a tutti.

Tag per questa discussione

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.