Mysql
 sql >> Database >  >> RDS >> Mysql

è meglio eseguire l'escape/codificare l'input dell'utente prima di archiviarlo nel database o archiviarlo così com'è nel database ed eseguirne l'escape durante il recupero?

  1. Perché ti aspetti di utilizzare sempre i dati in un contesto HTML? "Io <3 tu" e "Io <3 tu" non sono gli stessi dati . Pertanto, archivia i dati come è inteso nel database. Non c'è motivo per archiviarlo come escape.
  2. L'escape dei dati HTML quando e solo quando necessario ti dà la sicurezza di sapere cosa stai facendo. Questo:

    echo htmlspecialchars($data);
    

    è molto meglio di:

    echo $data; // The data should already come escaped from the database.
                // I hope.