Qualsiasi buona libreria dovrebbe fornire un corretto escape per i nomi SQL, che includono:
- nome schema
- nome tabella
- nome colonna
Ad esempio, all'interno di pg-promise lo useresti in questo modo:
db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])
cioè ottieni il nome della tua tabella correttamente evaso aggiungendo alla variabile ~
, che a sua volta lo rende sicuro da SQL injection.
Da qui, un semplice escape per i nomi delle tabelle eseguito dalla libreria:
return '"' + name.replace(/"/g, '""') + '"';
Vedi anche:Nomi SQL