Всяка добра библиотека трябва да осигурява правилно екраниране на SQL имена, които включват:
- име на схема
- име на таблица
- име на колона
Например, в рамките на pg-promise ще го използвате по следния начин:
db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])
т.е. получавате правилно екранирано името на вашата таблица, като добавите променливата с ~
, което от своя страна го прави защитен от SQL инжекция.
От тук, просто екраниране на имена на таблици, изпълнявани от библиотеката:
return '"' + name.replace(/"/g, '""') + '"';
Вижте също:SQL имена