Elke goede bibliotheek zou de juiste escaping moeten bieden voor SQL-namen, waaronder:
- schemanaam
- tabelnaam
- kolomnaam
Binnen pg-promise zou je het bijvoorbeeld als volgt gebruiken:
db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])
d.w.z. u krijgt uw tabelnaam correct ontsnapt door de variabele toe te voegen met ~
, wat het op zijn beurt weer veilig maakt voor SQL-injectie.
Vanaf hier een eenvoudige escape voor tabelnamen uitgevoerd door de bibliotheek:
return '"' + name.replace(/"/g, '""') + '"';
Zie ook:SQL-namen