Как точно заместителите (изготвени изявления) предпазват от sql инжектиране
Подготвените отчети предпазват от SQL инжектиране, като отделят синтаксиса на заявката от стойностите на параметрите на заявката. Същността на всяка SQL инжекция е да промени синтаксиса (текст, ако желаете) на заявка по един или друг начин. Ако предадете текста на заявката и параметрите отделно, няма да има начин да повлияете на синтаксиса на заявката от параметъра на заявката.
В случай на поддръжка от СУБД, модифицираните PHP изрази трябва да използват възможностите на СУБД и да й предават първо текста на заявката за компилация и едва след това, отделно, параметрите на заявката.
Теоретично проблеми могат да възникнат само ако изготвените отчети не се поддържат от самата СУБД и се емулират от PDO (т.е. от страната на скрипта, а не от СУБД). Тогава задръстванията при изпълнението на сглобяването на окончателната заявка могат да повлияят на сигурността. В случай на поддръжка от СУБД, просто няма какво да се „внедри“ - вие сте защитени от инжекции не чрез избягване на всичко и всичко, а поради правилния подход - никога не смесвайте самата заявка и нейните параметри.