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

Query MySQL non inserita quando la variabile PHP contiene virgolette singole

Prendi in considerazione l'utilizzo di query parametrizzate utilizzando PDO per esempio.

In alternativa, racchiudi le tue variabili tra parentesi { }.

Modifica:

Mi è sfuggita la tua variabile $subject contiene virgolette singole. Ciò significa che devi scappare da loro. (Vedi la miriade di altre risposte e mysql_real_escape_string() su questo.) Ma come puoi vedere, le virgolette singole all'interno della variabile sono esattamente come funzionano gli attacchi di iniezione. L'escape aiuta a prevenire tali problemi e consente alla tua query di archiviare i dati previsti.

Nessuna risposta sugli attacchi injection è completa senza fare riferimento a Bobby Tables .