Selon MySQL package documentation de Node.js:Les fonctions d'échappement dans le paquetage mysql Node.js sont-elles suffisantes pour interroger de manière sécurisée une base de données mysql (sans l'utilisation d'instructions préparées)?
Afin d'éviter des attaques par injection SQL, vous devez toujours échapper à toutes les données fournis par l'utilisateur avant de l'utiliser dans une requête SQL. Vous pouvez le faire en utilisant les méthodes mysql.escape(), connection.escape() ou pool.escape().
Je ne trouve aucune documentation/référence à l'utilisation d'instructions préparées avec mysql, sauf dans une référence à l'utilisation de '?' personnages. Il indique ce qui suit:
Vous pouvez également utiliser? caractères comme des espaces réservés pour les valeurs que vous aimeriez avoir échappé ...
Cela ressemble à des instructions préparées dans MySQL, mais il vraiment utilise simplement la même méthode connection.escape() en interne.
De mon expérience à parler à d'autres développeurs, le consensus général dans la communauté des développeurs est que les déclarations préparées sont SEULEMENT moyen sûr d'effectuer des requêtes MySQL de Node.js cependant, comme vous pouvez le voir avec la paquet mysql, il n'y a pas de support évident pour les instructions préparées. Cependant, il est indiqué que leur méthode pour éviter l'injection SQL est via l'utilisation des fonctions d'échappement.
Ma question:
sont les fonctions d'échappement du paquet mysql suffisant pour interroger une base de données en toute sécurité de MySQL (sans l'utilisation d'instructions préparées)?