Ecto използва само подготвени отчети. Когато използвате синтаксис на ecto заявка, въвеждането на SQL инжекция не е възможно. Синтаксисът на заявката проверява по време на компилиране, че не е възможно SQL инжектиране.
Показването на точно изпълнените заявки може да е трудно поради няколко причини:
- Postgrex (и следователно Ecto) използва двоичния протокол postgresql (вместо най-разпространения, но по-малко ефективен текстов протокол), така че
PREPARE
заявката всъщност никога не съществува като низ. - В повечето случаи всичко, което ще видите, ще бъде един инициал
PREPARE 64237612638712636123(...) AS ...
и по-късно многоEXECUTE 64237612638712636123(...)
което не е толкова полезно. Опитът да се свърже един с друг би бил ужасен.
От моя опит повечето софтуери от този вид използват оператори за подготовка и ги регистрират вместо необработени заявки, тъй като е много по-полезно за разбиране на поведението на системата.