Da ulteriori ricerche, ho trovato:
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-11.html
Correzione di sicurezza:
È stata rilevata una falla nella sicurezza di SQL injection nell'elaborazione della codifica multibyte. Il bug era nel server, analizzando in modo errato la stringa di cui è stato eseguito l'escape con la funzione API C mysql_real_escape_string ().
Questa vulnerabilità è stata scoperta e segnalata da Josh Berkus e Tom Lane come parte della collaborazione per la sicurezza tra i progetti del consorzio OSDB. Per ulteriori informazioni sull'iniezione SQL, vedere il testo seguente.
Discussione. È stata rilevata una falla nella sicurezza di SQL injection nell'elaborazione della codifica multibyte. Un buco di sicurezza di SQL injection può includere una situazione in cui quando un utente ha fornito dati da inserire in un database, l'utente potrebbe iniettare istruzioni SQL nei dati che il server eseguirà. Per quanto riguarda questa vulnerabilità, quando viene utilizzato l'escape inconsapevole del set di caratteri (ad esempio, addlashes () in PHP), è possibile aggirare l'escape in alcuni set di caratteri multibyte (ad esempio, SJIS, BIG5 e GBK). Di conseguenza, una funzione come addlashes () non è in grado di prevenire attacchi di SQL injection. È impossibile risolvere questo problema sul lato server. La soluzione migliore è che le applicazioni utilizzino l'escape in base al set di caratteri offerto da una funzione come mysql_real_escape_string ().
Tuttavia, è stato rilevato un bug nel modo in cui il server MySQL analizza l'output di mysql_real_escape_string (). Di conseguenza, anche quando veniva utilizzata la funzione di riconoscimento del set di caratteri mysql_real_escape_string (), era possibile l'iniezione SQL. Questo errore è stato corretto.
Soluzioni alternative. Se non sei in grado di aggiornare MySQL a una versione che include la correzione del bug nell'analisi di mysql_real_escape_string (), ma esegui MySQL 5.0.1 o versioni successive, puoi utilizzare la modalità SQL NO_BACKSLASH_ESCAPES come soluzione alternativa. (Questa modalità è stata introdotta in MySQL 5.0.1.) NO_BACKSLASH_ESCAPES abilita una modalità di compatibilità standard SQL, dove la barra rovesciata non è considerata un carattere speciale. Il risultato sarà che le query falliranno.
Per impostare questa modalità per la connessione corrente, immettere la seguente istruzione SQL:
SET sql_mode='NO_BACKSLASH_ESCAPES';
Puoi anche impostare la modalità a livello globale per tutti i client:
SET GLOBAL sql_mode='NO_BACKSLASH_ESCAPES';
Questa modalità SQL può anche essere abilitata automaticamente all'avvio del server utilizzando l'opzione della riga di comando --sql-mode = NO_BACKSLASH_ESCAPES o impostando sql-mode = NO_BACKSLASH_ESCAPES nel file delle opzioni del server (ad esempio, my.cnf o my.ini , a seconda del sistema). (Bug # 8378, CVE-2006-2753)
Vedi anche Bug # 8303.