• Super User

    @diliberto said:

    Apro una piccolissima parentisi su questo tema.

    Spesso, troppo spesso, si parla di SQL Injection e troppo poco spesso di Email Injection in Italia soprattutto.

    Mentre nel primo caso gli "eventuali" danni li pagate solo sulla vostra pelle (perdita o monipolazione dei dati presenti nel vostro db), nel secondo caso potete anche beccarvi delle belle denunce da parte di terzi per azioni di spam di cui VOI siete responsabili.

    Analizzate meglio il protocollo utilizzato dalle email, insieme ai metodi per manipolarne i destinatari, fatto ciò non avrete più alcuna esitazione ad aggiungere qualcosa del genere nel vostro codice:

    if (eregi("\r",$destinatarioemail) || eregi("\n",$destinatarioemail)) exit;

    Cordialmente
    Alessio
    Ciao Alessio :), ma il controllo da te consigliato ritieni sia utile anche nel caso dello script consigliato da me?? Lì la variabile che indica il destinatario è semplicemente una costante assegnata nel file php... :bho:

    Comunque hilary duff sicuro che nel file mail.php hai messo il codice che ho indicato io??? Mi pare strano stampi a video delle righe di testo che non sono proprio presenti...

    [CENTER]Il modulo non è stato inviato per le seguenti ragioni[/CENTER]
    [CENTER] Occorre un indirizzo email valido per continuare ()
    Premere indietro nel browser e riprovare.[/CENTER]

    devi metterci dentro questo

    
    <?php
    // ************Inizio Configurazione***************
    //Indirizzo emai a cui inviare i msg
    $mailto = "TUO_INDIRIZZO";
    //Oggetto della mail
    $subject = "OGGETTO DELLA MAIL";
    //Pagina da mostrare dopo l'invio
    $redirect = "URL_PAGINA";
    // ************Fine Configurazione****************
    
    
    foreach($HTTP_POST_VARS as $key => $value) {
    
    $message .= $key . ': ' . $value;
    $message .= "\n";
    
    }
    if (@mail($mailto, $subject, $message)) {
    
    header("Location: $redirect");
    } else {
    // Messaggio in caso di errore
    echo('
    
    Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>');
    }
    ?>
    ``` In cui come vedi non ci sono proprio quelle parole :bho:

  • User

    Ciao Claudioweb,

    facendo un' approfondita analisi sull' Email Injection emerge che il tutto si fonda sulla possibilità di inserire un ritorno a capo negli header, aggiungendo altri header a piacere.

    Pensare di filtrare \r e \n risolve il problema alla radice... non mi pare il tuo script abbia questi filtri, come nessuno degli altri presenti in questo thread, da qui il mio intervento.

    Purtroppo molti form con invio di email sono utilizzati come "testa di ponte" da malintenzionati per fare spam senza poter esser rintracciati.

    La questione è che il più delle volte il Webmaster vittima dell' Injection, riesce ad accorgersi del problema solo dopo una denuncia o segnalazione da parte di terzi, e dopo che il suo server ha mandato chissà quante migliaia di email a chissà chi 🙂

    In linea di massima tali sistemi vengono usati per mandare vagonate di email a vagonate di indirizzi diversi; è altamente probabile o quantomeno potrebbe succedere che uno di questi sia errato o inesistente quindi fate attenzione se vi tornavano degli undelivered di email con un mittente diverso dal vostro: è uno dei classici campanelli di allarme.

    Cordialmente
    Alessio

    Edito per aggiungere, rileggendo meglio le tue righe, che una buona conoscenza del protocollo usato per le email, qualche /n e qualche /r il destinatario lo ridefinisci nel corpo della mail ignorando quello da te indicato.
    Spero di esser stato chiaro e aver colmato ulteriori dubbi e perplessità in merito.


  • User

    claudio prova adesso... grazie ^^'


  • Super User

    Diliberto ti ringrazio per avermi fatto scoprire questo problema, che ammetto ingnoravo. 🙂

    Di solito evitavo e sconsigliavo script che si basavano su un indirizzo email del destinatario inserito nell'html, e facilmente falsificabile.
    Ma non avevo mai pensato che qualcuno potesse operare come da te indicato.
    Penso mi leggerò un po' di articoli sull'argomento.

    hilary duff che devo provare, sembrerebbe funzionare o sbaglio?


  • User

    funziona ma non mi arrivano 'email.... 😞


  • Super User

    @hilary duff said:

    funziona ma non mi arrivano 'email.... 😞

    Capisco... ma io he posso fare? Dimmelo tu... 🙂

    Come detto già altre volte, per la veggenza mi sto attrezzando... ma ancora non sono pronto 😄 Che ne so che hai combinato...

    Il codice è quello, e con un copia-incolla dovrebbe funzionare...

    Anzi come detto da Diliberto, funziona fin troppo... nel senso che anche altri potrebbero usarlo per inviare email.

    Prova a verificare che hai personalizzato correttamente l'email. O magari cambia casella di posta. Più di questo non saprei davvero che dirti :bho:


  • User

    ok... cmq grazie.. ti farà sapere... ^^' ciao ps ma dopo quando dovrebbe arrivare l'email? ^^'


  • User

    ci sono riuscito alleluja... cmq grazie merito tuo... ^^'


  • User

    ciao claudio
    pure io utilizzo il semplicissimo form che hai indicato.
    fino a qualche tempo fà tutto a posto.
    adesso mi arriva l'email di avviso dove prima leggevo appunto la comunicazione, ma adesso non trovo scritto piu niente. praticamente mi arriva un email vuota. mettendo in conto che non ho modificato nulla dall'ultima volta. che puo essere?
    grazie
    ciao:ciauz:


  • Super User

    Ma non trovi mai niente neppure se il messaggio lo scrivi tu, oppure ti arrivano email vuote?
    Se così fosse, potrebbe trattarsi di qualche tentativo di spam.

    Se invece non funziona neppure quando scrivi tu, ti consiglio di ricontrollare il codice html e php.

    Ciao :ciauz:


  • User

    purtroppo si claudio
    quando scrivo io non spunta nulla lo steeso
    vuoi vedere il codice che ho scritto?
    lo controllato diverse volte ma niente
    al massimo pensi possa essere un problema di server di posta?
    ciao


  • Super User

    Prova lo stesso script su un altro sito e vedi se va...

    Se fosse un problema di server penso non arriverebbe nulla, non una mail vuota...
    Però tutto può essere...


  • User

    grazie claudio

    il link è questo

    [html]http://www.paleobusiness.com/segna url.html[/html]

    e questo è il file mail.php che ho fatto

    [html]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    <?php
    // Inizio Configurazione***
    //Indirizzo emai a cui inviare i msg
    $mailto = "[email protected]";
    //Oggetto della mail
    $subject = "paleobusiness.com";
    //Pagina da mostrare dopo l'invio
    $redirect = "index.html";
    // Fine Configurazione****
    foreach($HTTP_POST_VARS as $key => $value) {
    $message .= $key . ': ' . $value;
    $message .= "\n";
    }
    if (@mail($mailto, $subject, $message)) {
    header("Location: $redirect");
    } else {
    // Messaggio in caso di errore
    echo('
    Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>');
    }
    ?>
    </body>
    </html>
    [/html]

    ciao


  • Super User

    Hai provato su un altro sito?

    Comunque il file mail.php deve contenere solo in codice che avevo indicato, tutto il resto che hai messo di tuo può solo creare problemi. Eliminalo.

    Non ho tempo per correggerlo io.

    Lo script è il più semplice possibile.

    Se non va su quel sito, prova come detto su un altro.

    Ciao :ciauz:


  • User

    purtroppo niente claudio. non và, la mail in questione pesa 1k, cio mi fa presupporre che ci sia qualcosa, invece niente.
    per quanto vaale il file php, non ho aggiunto nulla. praticamente funzionava tutto, ed un bel giorno piu niente, senza che andassi a modificare nulla. cmq ora provo a rifare ex novo il file mail.php

    appena ho notizie ti faccio sapere.
    grazie di tutto.
    :ciauz:


  • User

    ci sono novità
    ho caricato la stessa pagina su uno spazio che avevo su altervista, e come per magia funziona.
    il bello è che ho caricato gli stessi identici file che avevo su paleobusiness.com.

    bho?
    ma se volessi portarlo sul mio dominio che cosa dovrei fare secondo te?

    :ciauz:


  • User

    @claudioweb said:

    Ciao benvenuto 🙂

    Ottima la soluzione di Ludus 😉

    comnque per fare una cosa proprio semplice:

    salva questo codice in una pagina chiamata mail.php (o un altro nome da te scelto, l'importante poi è cambiare nell'altro codice il nome)

    [code]<?php
    // Inizio Configurazione***
    //Indirizzo emai a cui inviare i msg
    $mailto = "TUO_INDIRIZZO";
    //Oggetto della mail
    $subject = "OGGETTO DELLA MAIL";
    //Pagina da mostrare dopo l'invio
    $redirect = "URL_PAGINA";
    // Fine Configurazione****

    Sposto la discussione in php, che è la sezione più adatta 😉

    Bè... non è servito solo a nameless, debbo ringraziare anch'io!!!
    L'ho utilizzato unendo vari sistemi ottenendo un ottimo risultato!!!
    Solo una cosa: come posso fare per far diventare dei campi obbligatori?
    L'email prima di tutto!!;)
    Grazie ancora dell'ottimo post!!!
    Chevalier:fumato:

    p.s. : Per chi volesse vedere il risultato può farlo qui: clikka qui


  • Super User

    Ciao chevalier,prova modificando:
    [php]
    if (@mail($mailto, $subject, $message)) {
    header("Location: $redirect");
    }[/php]
    in
    [php]<?
    if (@mail($mailto, $subject, $message) AND !empty($_POST[email]) AND !empty($_POST[indirizzo]) AND !empty($_POST[telefono] AND !empty($_POST[localita]) AND !empty($_POST[prov])) {
    header("Location: $redirect");
    }else{
    echo "Errore: non hai completato tutti i campi o non è stato possibile l invio del messaggio";
    }?>
    [/php]


  • Super User

    Ciao chevalier,prova modificando:
    [php]
    if (@mail($mailto, $subject, $message)) {
    header("Location: $redirect");
    }[/php]
    in
    [php]<?
    if (@mail($mailto, $subject, $message) AND !empty($_POST[email]) AND !empty($_POST[indirizzo]) AND !empty($_POST[telefono] AND !empty($_POST[localita]) AND !empty($_POST[prov])) {
    header("Location: $redirect");
    }else{
    echo "Errore: non hai completato tutti i campi o non è stato possibile l invio del messaggio";
    }?>
    [/php]


  • User

    @probid said:

    Ciao chevalier,prova modificando:
    [php]
    if (@mail($mailto, $subject, $message)) {
    header("Location: $redirect");
    }[/php]
    in
    [php]<?[/php][php]
    if (@mail($mailto, $subject, $message) AND !empty($_POST[email]) AND !empty($_POST[indirizzo]) AND !empty($_POST[telefono] AND !empty($_POST[localita]) AND !empty($_POST[prov])) {
    header("Location: $redirect");
    }else{
    echo "Errore: non hai completato tutti i campi o non è stato possibile l invio del messaggio";
    }?>
    [/php]
    Ciao probid e grazie...ho tentato..ma non funziona😢
    posso approfittare di te???
    allego il php (mail.txt rinominare in .php) ed il codice completo nell'altro file txt da rinominare in htm.
    è inutile che allego il file della risposta, tanto trovi il redict nel codice .php
    Non mi dare dello sfacciato, un aiuto sarebbe quanto mai gradito perchè non vorrei ricominciare tutto daccapo!:x 😢
    Grazie ancora
    Guglielmo :fumato: