sql >> Base de Datos >  >> RDS >> Mysql

Prevenir la inyección de SQL en JavaScript / Node.js

La mejor forma de hacerlo es utilizar declaraciones o consultas preparadas (enlace a la documentación de NPM mysql módulo:https://github.com/mysqljs/mysql#preparing-queries )

var sql = "SELECT * FROM table WHERE userid = ?";
var inserts = [message.author.id];
sql = mysql.format(sql, inserts);

Si las declaraciones preparadas no son una opción (no tengo idea de por qué no lo serían), la manera de un hombre pobre de evitar la inyección de SQL es escapar de todas las entradas proporcionadas por el usuario como se describe aquí:https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet#MySQL_Escaping