Ecto anvender kun udarbejdede erklæringer. Når du bruger ecto-forespørgselssyntaks, er det ikke muligt at introducere SQL-injektion. Forespørgselssyntaksen verificerer på kompileringstidspunktet, at ingen SQL-injektion er mulig.
Det kan være svært at vise præcis de udførte forespørgsler på grund af to årsager:
- Postgrex (og dermed Ecto) bruger den binære postgresql protokol (i stedet for den mest almindelige, men mindre effektive tekstprotokol), så
PREPARE
forespørgsel eksisterer faktisk aldrig som en streng. - I de fleste tilfælde ville du kun se én indledende
PREPARE 64237612638712636123(...) AS ...
og senere en masseEXECUTE 64237612638712636123(...)
hvilket ikke er så nyttigt. At prøve at relatere hinanden til hinanden ville være forfærdeligt.
Fra min erfaring kan det meste af den slags software bruge forberede sætninger og logge dem i stedet for rå forespørgsler, da det er meget mere nyttigt til at forstå systemets adfærd.