Потенциальные SQL-уязвимости. Разработчик может забыть или некорректно сделать экранирование.
Вероятность этого остается в pgx. Дело в том, что pgx честно делает Simple Query внутри себя, выполняя экранирование аргументов. github.com/jackc/pgx/blob/0151aeb3077d63ed90110bc083521f709a5d4fef/query.go#L524
Если в этой функции пойдет что-то не так, то это прямой путь к уязвимостям.
lib/pq делает иначе. При указании в connection string параметра binary_parameters=yes драйвер отправит один запрос, в котором сначала идет Parse query string, затем Bind параметров в бинарном виде. github.com/lib/pq/blob/master/conn.go#L835
Видно, что далее драйвер честно читает Parse и Bind response от базы, как в сценарии с Extended Query.
Это позволяет разработчику или драйверу не собирать запрос в строку самостоятельно, а передать это все базе.
Вероятность этого остается в pgx. Дело в том, что pgx честно делает Simple Query внутри себя, выполняя экранирование аргументов.
github.com/jackc/pgx/blob/0151aeb3077d63ed90110bc083521f709a5d4fef/query.go#L524
Если в этой функции пойдет что-то не так, то это прямой путь к уязвимостям.
lib/pq делает иначе. При указании в connection string параметра binary_parameters=yes драйвер отправит один запрос, в котором сначала идет Parse query string, затем Bind параметров в бинарном виде.
github.com/lib/pq/blob/master/conn.go#L835
Видно, что далее драйвер честно читает Parse и Bind response от базы, как в сценарии с Extended Query.
Это позволяет разработчику или драйверу не собирать запрос в строку самостоятельно, а передать это все базе.