L'iniezione SQL funziona saltando fuori dalla parte "valore" della sintassi SQL nella parte "comando".
I valori di stringa (come nel tuo esempio) sono racchiusi tra virgolette - per uscire devi includere una citazione simile nel tuo valore (come ' WHERE 1; DROP TABLE ... o qualunque sia la sintassi effettiva). La codifica HTML non consente virgolette, quindi non funzionerà.
Mi sono chiesto un po 'sui campi non quotati - ad es. se si aspetta un numero (da un menu a discesa) ma gli dai un comando (come 5 WHERE 1; DROP TABLE ... o qualsiasi altra cosa). Tuttavia, non sono a conoscenza di istruzioni SQL a singola parola, ovvero non è possibile fare nulla senza qualcosa per separare i token (ad esempio uno spazio o punteggiatura ( ecc.). Quindi, anche se guardi un campo non quotato come un numero, potresti rovinare l'affermazione e produrre un errore, ma in realtà non eseguire nulla.