Estoy usando sql.js para administrar el archivo SQLite que creé para una aplicación electrónica. Mi problema es que quiero asegurarme de que todas las entradas estén desinfectadas. A partir de ahora, estoy usando declaraciones como esta:
const SQL = await sqljs(); const db = new SQL.Database(); // These values are just examples and will be user inputs through electron. let id = 1; let name = 'row name'; db.run(`INSERT INTO tableName VALUES (${}, 'hello');`);Estoy bastante seguro de que esta forma no es segura y puede causar inyecciones de SQL. ¿Qué puedo hacer para prevenir tal problema? Gracias por su amabilidad.
Puede utilizar parámetros enlazados. Estos son valores que se pasan al motor de la base de datos y no se analizan como parte de una instrucción SQL:
let id = 1; let name = 'row name'; /* Either pass in a dictionary to use named bound parameters */ db.run("INSERT INTO tableName VALUES(:id, :name)", { ':id': id, ':name': name }); /* Or an array to use positional bound parameters */ db.run("INSERT INTO tableName VALUES(?, ?)", [id, name]);Hay más información disponible en la documentación de SQLite , así como en la documentación de sqljs .