Lo farebbe a meno che tu non includa virgolette singole nel name
pubblicato , che ti permetterebbe di rompere le virgolette. Esempio, pubblica il nome come:
' or 1 or '
La clausola WHERE diventa:
WHERE id = '' or 1 or '';
Ciò corrisponderebbe e recupererebbe tutte le righe nella tabella a causa di or 1
parte. Come puoi vedere, esce dalle virgolette per iniettare un po' di SQL, quindi torna tra le virgolette per rendere valida la query.
No, ma se è stato eseguito con mysqli_multi_query
allora sì, potresti aggiungere più query alla fine.
Generalmente sì, ma una dichiarazione preparata sarebbe meglio. Usando l'escape, il WHERE
la clausola diventerebbe (usando il mio esempio sopra):
WHERE id = '\' or 1 or \'';
Questo non è più vulnerabile perché le virgolette non possono essere separate e corrisponderebbero alle righe solo se il name
corrisponde letteralmente a ' or 1 or '
il che è ovviamente improbabile.