Byłoby tak, chyba że w opublikowanej name
umieścisz pojedyncze cudzysłowy , co pozwoliłoby wyrwać się z cytatów. Przykład, opublikuj nazwę jako:
' or 1 or '
Klauzula WHERE staje się:
WHERE id = '' or 1 or '';
Spowoduje to dopasowanie i pobranie wszystkich wierszy w tabeli z powodu or 1
część. Jak widać, wyłamuje się z cudzysłowów, aby wstrzyknąć trochę kodu SQL, a następnie wraca do cudzysłowów, aby zapytanie było prawidłowe.
Nie, ale jeśli zostało wykonane za pomocą mysqli_multi_query
to tak, możesz dodać wiele zapytań na końcu.
Generalnie tak, ale przygotowane oświadczenie byłoby lepsze. Używając ucieczki, WHERE
klauzula stałaby się (korzystając z mojego przykładu powyżej):
WHERE id = '\' or 1 or \'';
Nie jest to już zagrożone, ponieważ cudzysłowów nie można wydzielić i pasowałyby tylko do wierszy, jeśli name
dosłownie pasuje do ' or 1 or '
co jest oczywiście mało prawdopodobne.