¿Los literales de la plantilla es6 protegen contra la inyección sql?

¿Los literales de plantilla es6, cuando se usan para build consultas, protegen contra la inyección de SQL? ¿Puedes dar algunos ejemplos de ataques comunes y cómo se mitigarían?

Más específicamente, planeo usar el module mssql en un proyecto de nodo. En su documentation en la sección de literales de la plantilla, dice "Todos los valores se desinfectan automáticamente frente a la inyección de SQL". ¿Es esto cierto solo por el funcionamiento de los literales de plantilla de ES6?

No, los literales de plantilla de ES6 son solo otra forma de crear cadenas y no te protegen contra las inyecciones de SQL si los usaras para crear consultas de SQL sin procesar a partir de la input proporcionada por el usuario sin filters / escapes adicionales:

let name = "Robert'; DROP TABLE Students;--"; // user supplied input let sql = `SELECT * FROM Students WHERE name = '${name}'`; // build query... console.log(sql); // Injected SQL! 
Intereting Posts