• User

    Controlli prima dell'inserimento in un database

    Salve, devo inserire dei dati provenienti da un form in un database. I dati devono essere delle stringhe comuni, che verranno stampate a video successivamente. Se l'utente immette caratteri html o particolari, questi non devono essere interpretati (ad esempio se inserisc il tag strong, nella successiva visualizzazione non voglio che il testo sia in grassetto, ma che mi visualizzi al massimo il tag strong)

    Una volta prelevate dai campi del form, che controlli devo fare per evitare spiecevoli problemi di sicurezza o errori durante l'inserimento/aggiornamento?

    Per ora ogni volta, prima di inserire i dati nel database di un campo applico queste funzioni:

    • trim: rimuovo gli spazi all'inizio e alla fine
    • controllo sulla lunghezza: controllo che la stringa non superi la lunghezza del campo pre-impostato del database.
      [LEFT]- htmlentities: per eliminare caratteri html.

    Successivamente mostro i dati senza farli passare per nessun altra funzione.

    C'è qualche altro controllo da fare, oppure va bene cosi?

    Grazie
    [/LEFT]


  • ModSenior

    Ciao gepeppe,
    bisogna utilizzare anche mysql_real_escape_string nel caso in cui i magic_quotes siano impostati su OFF per evitare di essere vulnerabile a SQL Injection.


  • User

    Quindi uso mysql_real_escape(htmlentities($nome_campo), $db) e poi passo tutto alla query?


  • ModSenior

    Si puoi fare in quel modo.