Bylo by tomu tak, pokud do zveřejněného name neuvedete jednoduché uvozovky , což vám umožní vymanit se z uvozovek. Příklad zadejte název jako:
' or 1 or '
Klauzule WHERE se stává:
WHERE id = '' or 1 or '';
To by odpovídalo a načetlo všechny řádky v tabulce kvůli or 1 část. Jak můžete vidět, vylomí se z uvozovek, aby vložil nějaké SQL, pak se vrátí do uvozovek, aby byl dotaz platný.
Ne, ale pokud byl spuštěn pomocí mysqli_multi_query pak ano, můžete přidat více dotazů na konec.
Obecně ano, ale lepší by bylo připravené prohlášení. Pomocí escapování WHERE klauzule by se stala (s použitím mého příkladu výše):
WHERE id = '\' or 1 or \'';
Toto již není zranitelné, protože uvozovky nelze vylomit a řádky by se shodovaly pouze v případě, že name doslova odpovídá ' or 1 or ' což je zjevně nepravděpodobné.