Би било, освен ако не включите единични кавички в публикуваното name
, което би ви позволило да излезете от кавичките. Например, публикувайте името като:
' or 1 or '
Клаузата WHERE става:
WHERE id = '' or 1 or '';
Това ще съпостави и ще извлече всички редове в таблицата поради or 1
част. Както можете да видите, той излиза от кавичките, за да инжектира малко SQL, след което се връща обратно в кавичките, за да направи заявката валидна.
Не, но ако е изпълнено с mysqli_multi_query
тогава да, можете да добавите множество заявки към края.
По принцип да, но подготвено изявление би било по-добре. Използвайки екраниране, WHERE
клауза ще стане (използвайки моя пример по-горе):
WHERE id = '\' or 1 or \'';
Това вече не е уязвимо, тъй като кавичките не могат да бъдат разбити и ще съответстват на редове само ако name
буквално съвпада с ' or 1 or '
което очевидно е малко вероятно.