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

Quali caratteri devono essere sottoposti a escape per impedire iniezioni (My)SQL?

Un'ipotesi riguardante il carattere backspace:immagina di inviarti un'email "Ciao, ecco la query per aggiornare il tuo DB come volevi" e un file di testo allegato con

INSERT INTO students VALUES ("Bobby Tables",12,"abc",3.6);

Catturi il file, vedi che è a posto e invia semplicemente il file a MySQL. Quello che non sapevi, però, era che ho messo

DROP TABLE students;\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b

prima dell'INSERT STATEMENT che non vedevi perché sull'output della console i backspace lo sovrascrivevano. Bamm!

Solo un'ipotesi, però.

Modifica (non ho resistito):