Leí aquí que el uso de ORM (como nHibernate) no necesariamente impide la inyección de SQL; por ejemplo, si continúa creando consultas dinámicas utilizando su marco ORM, todavía es vulnerable.
Bien, ¿cuál es el uso correcto de ORM para evitar todos los tipos de inyección SQL? ¿Deberíamos utilizar consultas parametrizadas utilizando nuestro marco ORM? Hace algo como nHibernate escapa de caracteres especiales de SQL como comillas simples para que los desarrolladores no escriban un fragmento de código como este:
private string SafeSqlLiteral(string inputSQL) { return inputSQL.Replace("'", "''"); }