Si desea una seguridad garantizada contra los ataques de inyección, use los parámetros enlazados.
En la práctica, su método puede ser realmente seguro para un RDBMS en particular, pero no tiene ninguna garantía de esto; todo lo que puede hacer es verificar los tipos de ataques de inyección de código en los que se puede comparar (mientras que los parámetros están relacionados) simplemente
no permitir que se inyecte el código).
¿Está seguro de que MSSQL no asigna ningún carácter de conjuntos de caracteres alternativos (por ejemplo, unicode) a una comilla simple (o un carácter de escape como \), que haría posible un ataque de inyección contra su defensa? ¿Está seguro de que el procesamiento posterior de su entrada desinfectada no rompe inadvertidamente (o intencionalmente por un administrador malicioso) su procedimiento de saneamiento? ¿Está seguro de que una actualización de MSSQL no incluirá más tarde un nuevo soporte de idioma / conjunto de caracteres que le permita a alguien realizar este ataque de estilo Unicode para inyectar secretamente un carácter de cita o escape? ¿Está seguro de que su aplicación nunca se moverá a otro RDBMS que sea vulnerable a este tipo de ataques (por ejemplo, dentro de unos años, si MSSQL está abandonado o es claramente inferior a otro producto)?