Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310

    Come rendere sicuro un form mail?

    allora, ho seguito la guida di php.html.it, quella dove viene spiegato passo per passo come creare un semplice form mail.. ho provato (su altervista.org) e funziona tutto!

    Adesso, la mia domanda è: cosa/come fare per rendere il tutto il più sicuro possibile? Anche per mettermi a riparo da spammari & co...

    grazie anticipiato a chi mi saprà aiutare!

    CODICE PAGINA HTML CONTENENTE IL FORM

    codice:
    <form action="/mail.php" method="POST">
    	<table border="0">
      	<tr>
        <td>Nome</td>
        <td><input type="text" name="nome" size="30"></td>
      	</tr>
      	<tr>
        <td>E-mail</td>
        <td><input type="text" name="email" size="30"></td>
      	</tr>
      	<tr>
        <td valign="top">Messaggio</td>
        <td><textarea rows="6" name="messaggio" cols="50"></textarea></td>
      	</tr>
      	<tr>
        <td colspan="2" valign="bottom" align="center" height="30">
        <input type="submit" value="Invia">
        <input type="reset" value="Cancella"></td>
      </tr>
    </table>
    </form>
    CODICE PAGINA MAIL.PHP

    codice:
    <?php
    
    $to = "maildestinatario";
    
    $subject = "Modulo proveniente dal sito miosito;
    
    $body = "Contenuto del modulo:\n\n";
    $body .= "Nome: " . trim(stripslashes($_POST["nome"])) . "\n";
    $body .= "E-mail: " . trim(stripslashes($_POST["email"])) . "\n";
    $body .= "Messaggio: " . trim(stripslashes($_POST["messaggio"])) . "\n";
    
    $headers = "From: Modulo utenti<modulo@sito.it>";
    
    if(@mail($to, $subject, $body, $headers)) 
    {
          echo "La mail è stata inoltrata con successo.";
    } else
       {
              echo "Si sono verificati dei problemi nell'invio della mail.";
       }
    ?>
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  2. #2
    Devi sempre pensare che l'utente sbaglia..

    Devi darti delle regole.. Devi sapere cosa dovrà arrivare da quel form, in che formato, con che lunghezza, cosa è permesso cosa no.. Se c'è una mail devi essere sicuro che venga inserita una mail.. Se c'è un nome difficilmente conterrà numeri.. se è un nickname avrà solamente A-Za-z0-9_ e ti crei la regola..

    Lo stripslashes non capisco a cosa ti serve..

    Io la penso cosi.. L'utente, anche in buona fede, può sbagliare.. bisogna solo anticipare i suoi errori..
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    Originariamente inviato da Al_katraz984

    Lo stripslashes non capisco a cosa ti serve..
    è una delle funzioni che servono per anticipare i possibili errori in fase di query dovuti a singoli e doppi apici. Sono poco usate per il fatto che di solito viene fatto in automatico dal PHP. Per vedere se è abilitata di default basta verificare il valore booleano ritornato da get_magic_quotes_gpc() in questo modo:

    Codice PHP:
    echo (get_magic_quotes_gpc()); 
    In caso di un suo uso in concomitanza con get_magic_quotes_gpc() settata a on, lo slash va ad inserirsi nel database come parte della stringa. Infatti la funzione usata una sola volta inserisce lo slash solo in fase di query identificando il carattere non come terminatore di stringa ma bensì come sequenza di escape.

  4. #4
    Si ma non vedo le query...
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    ops

  6. #6
    fagiano... ihihihihi

    Cmq ci sono moltissimi esempi sul forum su come rendere sicuri gli input degli utenti.. basta cercare
    Questa volta, più che un voto.. è favoreggiamento.

  7. #7
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da Al_katraz984
    Devi sempre pensare che l'utente sbaglia..

    Devi darti delle regole.. Devi sapere cosa dovrà arrivare da quel form, in che formato, con che lunghezza, cosa è permesso cosa no.. Se c'è una mail devi essere sicuro che venga inserita una mail.. Se c'è un nome difficilmente conterrà numeri.. se è un nickname avrà solamente A-Za-z0-9_ e ti crei la regola..

    Lo stripslashes non capisco a cosa ti serve..

    Io la penso cosi.. L'utente, anche in buona fede, può sbagliare.. bisogna solo anticipare i suoi errori..
    la mail è in semplice formato di testo.
    Quindi devo controllare che:

    1) essere sicuro che venga inserita una mail (quindi che ci sia il carattere @ nella stringa?)
    2) che il nome sia esclusivamente di tipo carattere
    3) le lunghezze sono già limitate (campo mail e campo nome) devo limitare anche il campo Messaggio

    4) db? qualcuno ha parlato di inserimento nel db? Niente di tutto ciò, semplicemente la mail arriva all'indirizzo che ho impostato, punto e basta. Niente database, o simili.

    manca qualcosa?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  8. #8
    PER LA MAIL:
    Codice PHP:
        function filtro_mail($email) {
            
    $trim_email trim($email);
            if (!
    eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,8})$"$trim_email)) {
                
    $errore "Email inserita in modo errato, torna indietro e digita una mail corretta!!";
                return 
    false;
                } else {
                return 
    true;
            }
        } 
    La parte importante è: !eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,8})$"

    L'ho trovata qui sul forum ed è quella che sembra funzionare meglio..
    Questa volta, più che un voto.. è favoreggiamento.

  9. #9
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da Al_katraz984
    PER LA MAIL:
    Codice PHP:
        function filtro_mail($email) {
            
    $trim_email trim($email);
            if (!
    eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,8})$"$trim_email)) {
                
    $errore "Email inserita in modo errato, torna indietro e digita una mail corretta!!";
                return 
    false;
                } else {
                return 
    true;
            }
        } 
    La parte importante è: !eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,8})$"

    L'ho trovata qui sul forum ed è quella che sembra funzionare meglio..
    intanto grazie, proverò questa per la mail.

    cosa sarebbe eregi?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  10. #10
    riconosce le espressioni regolari.. (quella dopo eregi è una espressione regolare)..

    Altre info su eregi guarda anche ereg e le altre..
    Questa volta, più che un voto.. è favoreggiamento.

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.