Visualizzazione dei risultati da 1 a 7 su 7

Discussione: pericolo spam

  1. #1
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178

    pericolo spam

    ho un form per inviare mail che funziona perfettamente, ma mi è stato detto che è a rischio di spam perchè non contiene controlli per gli indirizzi immessi, riporto per intero...

    Se vogliono (e se l'hosting lo permettesse) potrebbero per ogni invio far partire migliaia di mail semplicemente accodando indirizzi, oggetti, contenuto con dovuti accorgimenti, sull'unica variabile $emailto... anche perchè se non sbaglio (ho letto al volo) sulle altre variabili fai dei controlli, ma su quella nulla.
    Non è questione di memorizzazioni, in quell'unica variabile ci possono infilare 2000 indirizzi mail, un oggetto, un contenuto ed inviare senza a che te non arrivi neanche nulla.
    Adesso che hai preso il dominio, se te lo infilano in qualche lista di spam poi non riesci più a mandare mail a nessuno se non ti fai il mazzo per farti togliere dalla lista.

    non ho capito bene come funzionerebbe, visto che ho una variabile per l'indirizzo mail di destinazione(il mio) specificata nel codice e quindi non alterabile dall'utente, e un altra variabile con indirizzo email mittente inserito tramite il form su cui è effettuato un controllo di validità per cui non vedo come si possano inserire indirizzi multipli, lì si specifica il mittente, il destinatario sono sempre io e non può essere cambiato se non manipolando il codice, allora di che accorgimenti parla? vi metto quì il codice intero, a me non sembra che ci siano falle, se ne trovate ditememelo per favore...

    codice:
    <?
    $nome      = trim($_POST['nome']);  
    $oggetto     = trim($_POST['oggetto']);  
    $messagge = trim($_POST['messagge']);  
    $email = trim($_POST['email']);  
    
    
    if(get_magic_quotes_gpc())  
    {  
    $nome      = stripslashes($nome);  
    $oggetto     = stripslashes($oggetto);  
    $email = stripslashes($email); 
    $messagge = stripslashes($messagge);  
    }
    
    
      
    if ($_POST['op'] =="invio") {
    	$error=0;
    	$msg="";
    	if ($nome=="") {
    		$error=1;
    		$msg.="- Il campo nome è vuoto.
    ";
    	}
    	if ($oggetto=="") {
    		$error=1;
    		$msg.="- Il campo oggetto è vuoto.
    ";
    	}
    	if ($email=="") {
    		$error=1;
    		$msg.="- Il campo e-mail è vuoto.
    ";
    	}
    	if ($email!="" && !eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {
    		$error=1;
    		$msg.="- L'e-mail inserita non è valida.
    ";	
    	}
    	if ($messagge=="") {
    		$error=1;
    		$msg.="- Il campo messaggio è vuoto.
    ";
    	}
    	$error_file="";
    	if ($error==1 || $error_file!="") {
    		echo "<div id=\"datiAlert\">
    
    Attenzione! Si sono verificati i seguenti errori:
    $msg
    $error_file
    <a href=\"javascript:history.back()\">Clicca qui</a> per inserire i dati.</div>";	
    	} else {
    		$emailto="mia@mail.it";
    
    		
    		$headers = "MIME-Version: 1.0\n";
    		$headers .= "Content-Type: multipart/mixed; boundary=\"XX-1234DED00099\"\n";
    		$headers .= "Content-Transfer-Encoding: 7bit\n";
    		$headers .= "From: $email\n";
    		
    		$messaggio="--XX-1234DED00099A\n";
    		$messaggio.="Content-Type: text/plain; charset=ISO-8859-1\n";
    		$messaggio.="Content-Transfer-Encoding: 7bit\n\r";
    		
    
    		$messaggio.="Dati inseriti\n";
    		$messaggio.="Nome: $nome\n\rOggetto: $oggetto\n\r";
    		$messaggio.="E-mail: $email\nMessaggio:\n\r$messagge\n\r";
    		$messaggio.="\n\r";
    		$messaggio.="\n\r";
    		$messaggio.="\n\r";
    		$messaggio.="\n\r";
    		$messaggio.="Mail inviata da : www.miosito.it\n\r";
    		$oggetto_send="$oggetto";
    		
    		if (!mail($emailto, $oggetto_send, $messaggio, $headers)) {
    			echo "
    Attenzione.
    Si sono verificati degli errori durante l'invio della Email.
    
    			Riprovare di nuovo <a href=\"javascript: history.back()\">cliccando qui.</a>
    
    
    			Se l'errore persiste riprovare più tardi. Grazie.";
    		}
    		else {
    
    
    			$messaggio_risposta="Grazie per avermi contattato.\n\rIl messaggio è stato inoltrato, risponderò appena possibile.\n\r";
    			$messaggio_risposta.="\n\r";
    			$messaggio_risposta.="Dati inseriti\n\r";
    			$messaggio_risposta.="Nome: $nome\n\rOggetto: $oggetto\n\r";
    			$messaggio_risposta.="Messaggio:\n\r$messagge\n\r\n\r";
    			$messaggio_risposta.="Distinti saluti.\n\r";
    			$messaggio_risposta.="\n\r";
    			$messaggio_risposta.="\n\r";
    			$messaggio_risposta.="\n\r";
    			$messaggio_risposta.="\n\r";
    			$messaggio_risposta.="Mail inviata da : www.miosito.it\n\r";
    			$oggetto2="Messaggio inoltrato";
    
    			mail($email, $oggetto2, $messaggio_risposta, "From: TeraBIT <$emailto>" );
    			
    			echo "<div id=\"datiInviati\">
    E-mail inviata correttamente, riceverete un messaggio di conferma alla vostra casella di posta.
    
    			
    I dati inseriti sono i seguenti:
    
    
    			<div id=\"messRisposta\">
    			Nome: $nome 
    
    			Oggetto: $oggetto
    
    			E-mail: $email
    Messaggio:
    ".nl2br($messagge)."
    
    			
    
    			</div>
    
    			
    
    Grazie per avermi contattato, rispondero' appena possibile.
    </div>";
    		}
    	}
    	
    } else {
    ?>
    a me non sembra esserci nulla di errato, ma vorrei anche un giudizio esterno...
    è troppo impegnativo...

  2. #2
    Chiedigli di spiegarti nel dettaglio come farebbe l'attaccante a fare quanto ha scritto visto che alla riga 45 imposti staticamente il valore di $emailto ($emailto="mia@mail.it".

    Al massimo hai problemi relativi a $email (come in qualsiasi mail form), ma per quello puoi sempre usare un captcha.

  3. #3
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178
    infatti mi sembrava strano, se il valore della variabile è statico a meno che non mi manomettano il codice via hacking(ma la vedo dura, non sono mica chissachì...) mi sembra impossibile...

    riguardo all'email del mittente ($email) che problemi ci sono? il controllo presente verifica che la stringa inserita sia una mail e non una serie di caratteri messi a casaccio, e credo dovrebbe consentire l'uso di un solo indirizzo visto che se vengono inserite virgole o spazi non la dà valida, o c'è dell'altro? what is captcha? :master:
    è troppo impegnativo...

  4. #4
    Hai ragione, non avevo visto l'espressione regolare di controllo ma solo =="".

    Così non dovresti avere problemi.

  5. #5
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178
    capisco...allora il tizio di cui sopra mi ha fatto venire il magone per niente??
    è troppo impegnativo...

  6. #6
    Non avrà visto il $emailto="mia@mail.it"; ed avrà pensato che il server avesse register_globals attivo.

  7. #7
    Utente di HTML.it L'avatar di TeraBIT
    Registrato dal
    Dec 2005
    Messaggi
    178
    dubito, la discussione da cui era saltata fuori quell'osservazione verteva sul modificare il codice del form perchè il server su cui è hostato non consente quelle variabili e ne impediva il funzionamento(le global, si trattava di mettere il "POST" davanti all'elemento che fà partire i controlli), bho, ha parlato di una "letta veloce", si sarà confuso...

    abbè, l'importante è che il form funziona e non è esposto a rischi, thanks per la delucidazione!
    è troppo impegnativo...

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.