Questa query MySql è protetta da sql-injection? [duplicare]

-1

Ho un piccolo codice php, prima di scoprire mysqli real_escape_string stavo usando una funzione con alcune regole regex per pulire ogni input dell'utente tramite i simboli, ma per un'e-mail o una password, questa non è una buona soluzione. Così ho trovato questa funzione per prevenire un'iniezione SQL.

$email = $MySQLi_CON->real_escape_string(trim($_POST['uemail']));

$query = $MySQLi_CON->query("SELECT user_id, uemail, user_password FROM users WHERE uemail='$email'");

Questo codice è protetto da input dannosi?

    
posta user324964 10.03.2016 - 17:51
fonte

1 risposta

2

mysql_real_escape_string non è una bacchetta magica per fermare gli attacchi di SQL injection. Esistono modi in cui un utente malintenzionato può eseguire un attacco di iniezione SQL, anche se si passano tutti gli input tramite mysql_real_escape_string . Vedere link per una discussione interessante su questo argomento.

Si consiglia vivamente di utilizzare istruzioni preparate per prevenire attacchi di SQL injection, invece di utilizzando mysql_real_escape_string .

    
risposta data 10.03.2016 - 18:11
fonte

Leggi altre domande sui tag