быть не правильным. Но будет ли такой запрос защищенным от SQL Injection? Или мне нужно делать проверку?
Т.е. 'permissions' и 'status' могут содержать SQL Injection
> Но будет ли такой запрос защищенным от SQL Injection? Конечно, не будет. > Или мне нужно делать проверку? Какую "проверку"? От SQL injection в идеале защищаются параметризацией, либо (если параметризация невозможна — у Вас не тот случай!) уж использованием встроенных (т.е. надёжных и оттестированных!) escaping functions, предоставляемых клиентом, а не какими-то "проверками"! Вот, опять-таки, пример параметризуемого запроса (с JSON): https://dbfiddle.uk/?rdbms=postgres_12&fiddle=0e230b6fbba208095f591a2bfeb2e706 Другой вариант — использовать API для механизма PREPARE на клиенте (если такое есть), и вставлять по одной записи. Т.е. что-то вроде: prepared_insert = prepare("INSERT ... VALUES ($1, $2, ...) ..."); execute(prepared_insert, 1, 'hello', ...); execute(...); execute(...) ...".
https://www.veracode.com/blog/secure-development/how-prevent-sql-injection-nodejs
Обсуждают сегодня