如何使execute_values安全?

时间:2019-05-06 19:54:52

标签: python sql-injection psycopg2

我正在使用以下代码段插入一些值:

execute_values(
  dest_cursor,
  f'''
  INSERT INTO {tName}({tColumns}) VALUES %s;
  ''',
  records,
  template=customTemplate,
)

但是在阅读文档时,我发现了一些有关SQL注入的警告,例如here

  

警告永远不要,永远不要使用Python字符串串联(+)或字符串参数插值(%)将变量传递给SQL查询字符串。甚至没有枪口。

但这是不可能的(因为我无法将多个参数传递给execute_values):

execute_values(
  dest_cursor,
  'INSERT INTO %s (%s) VALUES %s;',
  (tName, tColumns, records),
  template=customTemplate,
)

有什么可以改善的吗?

0 个答案:

没有答案