从正确传递SQL参数的文档到psycopg2:
"只应通过此方法绑定变量值:它不应用于设置表或字段名称。对于这些元素,应在运行execute()之前使用普通的字符串格式。"
http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries
这是为什么?为什么设置字段名称与设置值没有相同的SQL注入问题?
答案 0 :(得分:0)
因为您通常不会从用户那里收到表或字段的名称,所以您可以自己在代码中指定它们。如果根据从用户输入获得的值生成请求,那么应该进行某种转义以避免SQL注入。