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

Quando NON dovrei usare mysql_real_escape_string

È una cattiva idea per un paio di motivi:

  • In primo luogo, presuppone che i tuoi input andranno sempre nel database e solo nel database. E se qualcosa dovesse essere utilizzato nell'output HTML? O in una e-mail? O scritto su un file? O molte altre cose.. il tuo filtro dovrebbe sempre essere sensibile al contesto.
  • Ancora più importante, incoraggia un uso sciatto di GET, POST, ecc. Perché non c'è alcuna indicazione che siano stati filtrati. Se qualcuno ti vede usa

    echo $_POST['nome'];

    su una pagina, come fanno a sapere che è stata filtrata? O peggio ancora... sei sicuro che lo sia stato? E quell'altra app? Sai, quello che ti è stato appena consegnato? Cosa farebbero i nuovi sviluppatori? Saprebbero anche che il filtraggio è importante?