Rimuoviamo completamente PHP dall'equazione per un momento. 
 L'iniezione SQL consente a un utente malintenzionato di manipolare la query SQL per essere ciò che desidera che la query venga eseguita. Questo può essere il dumping del contenuto del database, la modifica dei dati e persino l'esecuzione del codice. 
 L'esempio che hai fornito è effettivamente vulnerabile all'iniezione SQL. Ai fini della dimostrazione, permettimi di semplificarlo un po ': 
   mysqli_query($conn, "SELECT trans FROM dictionary WHERE word = '$search'");    
 Dato un valore di   security   , la query risultante apparirebbe così: 
   SELECT trans FROM dictionary WHERE word = 'security';    
 Questo è innocente e normale. Tuttavia, dato quanto segue, un utente malintenzionato può ottenere la versione di MySQL in esecuzione: 
   ' @@version -- -    
 Questo causerebbe alla query il risultato di quanto segue: 
   SELECT trans FROM dictionary WHERE word = '' @@version -- - ';    
 In definitiva, a seconda delle autorizzazioni e della configurazione, un utente malintenzionato può passare da un database all'altro nel server del database, leggere i file dal filesystem o eseguire il codice. Ecco un esempio di come un utente malintenzionato può leggere file da un sistema operativo basato su Linux: 
   ' LOAD_FILE('/etc/passwd') -- -'    
 Ciò quindi comporterà la seguente query: 
   SELECT trans FROM dictionary WHERE word = '' LOAD_FILE('/etc/passwd') -- -'    
 Ci sono un paio di cose da tenere a mente a questo punto: 
-  Non tutte le vulnerabilità di SQL injection sono uguali a 
-  Le tecniche per leggere i file, eseguire codice e eseguire il dump dei database varieranno ampiamente dalla lingua, dal server database di back-end e dalle circostanze che circondano la vulnerabilità stessa 
 Indipendentemente da ciò, raccomanderei vivamente che una vulnerabilità di SQL injection venga corretta mediante la parametrizzazione o la whitelist di input dell'utente in base alle esigenze della funzionalità in questione. 
 Ho iniziato con la rimozione di PHP dalla discussione perché l'iniezione SQL non è dipendente dalla lingua e dal framework: influisce su qualsiasi linguaggio che consenta la connettività del database. Indipendentemente dalla lingua, l'input dell'utente deve essere trattato con sospetto e gestito in modo appropriato.