Les littéraux de modèle es6 protègent-ils contre l’injection SQL?

Les littéraux de modèle es6, lorsqu’ils sont utilisés pour construire des requêtes, protègent-ils contre l’injection SQL? Pouvez-vous donner quelques exemples d’attaques courantes et comment elles seraient atténuées?

Plus spécifiquement, je prévois d’utiliser le module mssql dans un projet de nœud. Dans leur documentation, dans la section des littéraux de modèle, il est indiqué “Toutes les valeurs sont automatiquement vérifiées en fonction de l’injection SQL”. Est-ce vrai uniquement à cause du fonctionnement des littéraux de modèle ES6?

Non, les littéraux de modèle ES6 ne sont qu’un autre moyen de créer des chaînes et ne vous protègent pas contre les injections SQL si vous deviez les utiliser pour créer des requêtes SQL brutes à partir d’une entrée utilisateur fournie sans filtrage / échappement supplémentaire:

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