Безопасна ли эта оболочка, которую я создал для SQL-запросов? - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь создать оболочку для небольшого sqlite, я знаю, что это против SQL для создания динамических запросов, но я хотел бы знать, если это безопасно

async create(item: T): Promise<sqlite3.RunResult> {
    // tslint:disable-next-line: no-parameter-reassignment
    const values = Object.keys(item).map(_ => _ = '?').join(', ');
    const query = `INSERT INTO ${this.table} VALUES (${values})`;
    const stmt = await this.database.prepare(query);

    return stmt.run(item);
}

Таким образом, в основном я вызываю класс, который имеет эту функцию, с именем таблицы по своему выбору (в коде), пользователь вводит значения свойств объекта, и я читаю ключи указанного объекта, затем создаю запрос, используя таблицу имя, которое я выбираю, и значения заполнителя генерируются из объекта, это безопасно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...