Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99

    SPAM bot: Nascondere email in un form

    Ciao, desideravo nascondere la mia email in un form.
    All'interno della pagina php dove c è il form di invio mail io ho:

    codice:
    $my_email ='miaEmail@miosito.com';
    $to = $my_email;
    $sent=  mail($to, $subject, $body,$headers);
    Pur avendo la mail inserita nel codice php pare che gli Spam Bot riescano a rintracciarla.
    Qualche dritta?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Puoi mettere ad esempio un captcha nel form
    No

  3. #3
    Quote Originariamente inviata da Erwin19 Visualizza il messaggio
    Ciao, desideravo nascondere la mia email in un form.
    Pur avendo la mail inserita nel codice php pare che gli Spam Bot riescano a rintracciarla.
    Non è possibile che la mail venga prelevata direttamente dal codice PHP. Il problema è altrove. Probabilmente generi dell'html in cui la mail è visibile in chiaro oppure lo script di invio mail viene invocato direttamente e tu non fai i dovuti controlli per evitare questo.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Non è possibile che la mail venga prelevata direttamente dal codice PHP. Il problema è altrove. Probabilmente generi dell'html in cui la mail è visibile in chiaro oppure lo script di invio mail viene invocato direttamente e tu non fai i dovuti controlli per evitare questo.
    Mi sa che hai ragione... E se io chiamassi la mail da un file esterno, tu credi che potrebbe essere ancora rintracciabile?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Gli spambot non rintracciano il tuo indirizzo email, per intenderci non prendono il tuo indirizzo e lo usano per mandare email.
    Molto più semplicemente stanno usando il form che hai sulla pagina web, inviando i dati inseriti nel form risponde come è normale il tuo script ed è questo che invia l'email.

    Il tuo indirizzo email lo puoi mttere dove ti pare, ma finché non proteggi in qualche modo l'inivio dei dati dal form, continuerai a ricevere spam.
    Ultima modifica di Alhazred; 27-06-2014 a 12:57

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Gli spambot non rintracciano il tuo indirizzo email, per intenderci non prendono il tuo indirizzo e lo usano per mandare email.
    Molto più semplicemente stanno usando il form che hai sulla pagina web, inviando i dati inseriti nel form risponde come è normale il tuo script ed è questo che invia l'email.

    Il tuo indirizzo email lo puoi mttere dove ti pare, ma finché non proteggi in qualche modo l'inivio dei dati dal form, continuerai a ricevere spam.
    Ho inserito nel form il captcha. Posso sempre postare il codice..

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99
    Pur prelevando la mail salvata in un file a parte, incontro lo stesso problema...

    Qui tutto il codice...

    codice:
    <?php 
        session_start();
        
        //prelevo mail
        $fp = fopen("../../../dataForm.txt", "r");
        $data = fread($fp, 16);
    
        $my_email =$data;
        $errors = '';
        $name = '';
        $visitor_email = '';
        $user_message = '';
        fclose($fp);
    
        if(isset($_POST['submit'])) {
            
            $name = $_POST['name'];
            $visitor_email = $_POST['email'];
            $user_message = $_POST['message'];
            ///------------Do Validations-------------
    
            if(empty($name)) {
                $errors .= "<span style=\"color:red\"> Completa il campo Nome!!! </span>";
            }
            if(empty($visitor_email)) {
                $errors .= "<span style=\"color:red\">\n Completa il campo Mail!!! </span>";
            }    
            if(empty($user_message)) {
                $errors .= "<span style=\"color:red\">\n Completa il campo Messaggio!!! </span>";
            }                
            
            if(IsInjected($visitor_email)) {
                $errors .= "<span style=\"color:red\">\n Mail NON valida!!! </span>";
            }
            if(empty($_SESSION['6_letters_code'] ) || strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0) {
                $errors .= "<span style=\"color:red\">\n Codice captcha incorretto o non inserito!!! </span>";
            }
            
            if(empty($errors)) {
                //send the email
                $to = $my_email;
                $subject="Mail da $name";
                $from = $visitor_email;
                $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
                
                $body ="$user_message\n".
                "\nIP: $ip\n";    
                
                $headers = "From: $from \r\n";
                $headers .= "Reply-To: $visitor_email \r\n";
                
                $sent=  mail($to, $subject, $body,$headers);
                if($sent) {            
                    echo '<script type="text/javascript">document.location.href="thanks.html";</script>';
                        
                } else echo "Invio non riuscito";
            }
        }
    
        // Function to validate against any email injection attempts
        function IsInjected($str){
          $injections = array('(\n+)',
                      '(\r+)',
                      '(\t+)',
                      '(%0A+)',
                      '(%0D+)',
                      '(%08+)',
                      '(%09+)'
                      );
          $inject = join('|', $injections);
          $inject = "/$inject/i";
          if(preg_match($inject,$str)) {
            return true;
          } else {
            return false;
          }
        }
    ?>

    Codice del form:
    codice:
        <?php
            if(!empty($errors)){
            echo "<p class='err'> ".nl2br($errors)."</p>";
            }
            
        ?>
    
        <div id='contact_form_errorloc' class='err'></div>
        
        <form class="formMail" method="POST" name="contact_form" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> 
            <p>
                <label for='name'>Nome: </label><br>
                <input type="text" placeholder="John Doe" name="name" value='<?php echo htmlentities($name) ?>'>
            </p>
            <p>
                <label for='email'>Email: </label><br>
                <input type="text" placeholder="mail@example.com" name="email" value='<?php echo htmlentities($visitor_email) ?>'>
            </p>
            <p>
                <label for='message'>Messaggio:</label> <br>
                <textarea name="message" placeholder="Write something to us" rows=8 cols=30><?php echo htmlentities($user_message) ?></textarea>
            </p>
            <p>
                <img src="../../captcha_code_file.php?rand=<?php echo rand(); ?>" id='captchaimg' ><br>
                <label for='message'>Inserisci il  codice captcha:</label><br>
                <input id="6_letters_code" name="6_letters_code" type="text"><br>
                <small>Impossibile leggere l'immagine? Clicca <a href='javascript: refreshCaptcha();'>QUI</a> per aggiornare</small>
            </p>
            <input type="submit" value="Submit" name='submit'>
        </form>
    Ulteriori controlli:
    codice:
        <script language="JavaScript">
            var frmvalidator  = new Validator("contact_form");
    
            frmvalidator.addValidation("name","req","Inserisci il tuo Nome"); 
            frmvalidator.addValidation("email","req","Inserisci la tua Mail"); 
            frmvalidator.addValidation("email","email","Inserisci una Mail Valida"); 
        </script>
    
        <script language='JavaScript' type='text/javascript'>
            function refreshCaptcha(){
                var img = document.images['captchaimg'];
                img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
            }
        </script>

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Sei sicuro che lo spam provenga da questo form?
    No

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99
    Eh son sicuro... bella domanda... Il sito ha poche pagine e non ho inserito la mail in altri posti. Può essermi sfuggito qualcosa, ma controllando e ricontrollando anche le altre pagine non c'è traccia di altre mail in chiaro, nascoste o commentate. Quella è l'unica pagina dei contatti dove c'è la mail. Ma la mail adesso viene prelevata da un file esterno!
    Come diavolo è possibile?

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Non ha senso mettere la mail in un altro file.

    Conoscci la differenza tra client e server?

    Comunque lo spambot compila il tuo form, non prende la mail
    No

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 © 2024 vBulletin Solutions, Inc. All rights reserved.