Jede gute Bibliothek sollte korrektes Escaping für SQL-Namen bieten, darunter:
- Schemaname
- Tabellenname
- Spaltenname
Innerhalb von pg-promise würden Sie es beispielsweise so verwenden:
db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])
d.h. Sie erhalten Ihren Tabellennamen richtig maskiert, indem Sie die Variable mit ~
anhängen , was es wiederum vor SQL-Injection schützt.
Von hier aus wird ein einfaches Escapezeichen für Tabellennamen von der Bibliothek ausgeführt:
return '"' + name.replace(/"/g, '""') + '"';
Siehe auch:SQL-Namen