[risolto] Continuo SPAM sul modulo contatti

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
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:
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>
 

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
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? :|
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Domanda stupida: hai provato a verificare se sbagliando di proposito l'inserimento del captcha il modulo effettivamente non invia niente ?

Altrimenti, una soluzione molto spartana ma anche molto efficiente per un caso generico (ovvero: non hai qualcuno che struttura lo spam in base a come componi il sito, ma usa un robot che riempie tutti i campi del form di turno) è quella di creare un campo input di tipo hidden da lasciare volutamente vuoto.

Se ti arriva pieno dall'altro lato significa che non è un utente quello che l'ha riempito e di conseguenza annulli il processo di invio.
 

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
Si si, l'invio non avviene se il codice di sicurezza è errato.

Si, in un sito avevo adattato la soluzione da te indicata e diciamo che funzionava....

MA vorrei capire come mai questa non va?! :)
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Molto semplicemente allora riescono ad interpretare il captcha.
Non ci sono solo software OCR, ma ci sono anche altri metodi con cui i captcha possono essere decodificati e purtroppo neanche reCaptcha è immune da questo processo.

E' probabilissimo che se ti passa tanto spam in realtà recaptcha stia funzionando e buona parte delle richieste vengono effettivamente bloccate.

Per provare questa ipotesi, se hai possibilità, crea una tabella sul database e usala per segnarti i tentativi di invio del form che falliscono perché sbagliano il captcha, in questo modo si può capire meglio cosa stia effettivamente succedendo.
 

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
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.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Al massimo potresti optare per l'utilizzo di captcha più complicati.
I software già citati riescono a decifrare quelli semplici ma alcuni captcha riescono a dare ancora una certa tranquillità (anche se non troppa).
 
Discussioni simili
Autore Titolo Forum Risposte Data
F [risolto] movimento continuo jquery jQuery 4
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15

Discussioni simili