Я использую NodeJS и MariaDB. У меня есть много таблиц, где некоторые пользователи могут изменить значение с помощью запросов. Я не хочу готовить запросы для каждого столбца, который пользователь хочет обновить, например:
module.exports.updateName = (name,id) =>{
return pool.query("UPDATE Users SET name=? WHERE user_id=?;", [name,id])
}
module.exports.updateAge = (name,id) =>{
return pool.query("UPDATE Users SET age=? WHERE user_id=?;", [age,id])
}
Я хочу построить с.т. как шаблон, который ожидает таблицу, столбцы и значения.
Для предотвращения атак SQL-инъекций я уже использую? заполнители для значений. К сожалению MariaDB не поддерживает заполнители для таких идентификаторов, как ??.
Я не чувствую себя в безопасности, если просто объединить имя таблицы или столбцы со строкой запроса, например:
"SELECT INTO " + tablename +"(" + columns + ")" ...
Моя идея заключалась в том, чтобы при каждом запуске запрашивать, какие имена таблиц и столбцов существуют в моей базе данных, и сохранять их в списке. Тогда я мог бы проверить, являются ли переданные строки таблицы и столбца действительными или нет.
Имеет ли эта идея смысл или это распространенный способ? Как бы справиться с этой проблемой?
Я благодарен за каждый совет!
Привет