Many development frameworks (Rails, Django, Node.js, etc.) employ an objectrelational
model
(ORM) to abstract communication with a database. Many ORMs provide automatic query
parameterization when using programmatic methods to retrieve and modify data, but developers
should still be cautious when allowing user input into object queries (OQL/HQL) or other
advanced queries supported by the framework.
Proper defense in depth against SQL injection includes the use of technologies such as
automated static analysis and proper database management system configuration. If possible,
database engines should be configured to only support parameterized queries.