Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PostgreSQL复制SQL注入_Python_Postgresql_Sql Injection - Fatal编程技术网

Python PostgreSQL复制SQL注入

Python PostgreSQL复制SQL注入,python,postgresql,sql-injection,Python,Postgresql,Sql Injection,我使用PostgreSQL 11 COPY命令将大型CSV导入Python数据库,如下所示: 从STDIN复制“ns.”表(“col1”、“col2”),CSV头分隔符为“,” 我没有找到任何最近的信息,如果这个操作在SQL注入攻击方面是安全的,或者我应该手动检查CSV并转义文件中的每个值(这是一个非常繁重的操作) 谢谢 使用此命令不存在SQL注入的危险 如果用户提供的数据不正确,则表中的数据不正确,或者最坏的情况下,可能会因为文件不正确或违反了约束而出错 但是没有办法破坏执行语句的安全性,因为

我使用PostgreSQL 11 COPY命令将大型CSV导入Python数据库,如下所示:

从STDIN复制“ns.”表(“col1”、“col2”),CSV头分隔符为“,”

我没有找到任何最近的信息,如果这个操作在SQL注入攻击方面是安全的,或者我应该手动检查CSV并转义文件中的每个值(这是一个非常繁重的操作)


谢谢

使用此命令不存在SQL注入的危险

如果用户提供的数据不正确,则表中的数据不正确,或者最坏的情况下,可能会因为文件不正确或违反了约束而出错


但是没有办法破坏执行语句的安全性,因为用户输入的任何内容都不会成为SQL语句的一部分。使用
COPY
,SQL语句和数据之间有着明显的区别。

除了[CVE-2019-9193]()。@adriankeraver这是不相关的,因为这里有
COPY。。。从STDIN
。您引用的不是SQL注入,启动也不是安全问题。是的,但您没有指定
COPY。。。在STDIN中,您对
COPY
做了一个笼统的陈述。这也是一个安全问题,它只是一个文件化的问题。基本上超级用户就是超级用户,所以在分配它们时要小心。由于
程序
可能是运行
SQL
的东西,因此它可能是
SQL注入
,而且您正在使用
SQL
发动攻击。我个人认为整件事都被夸大了,但不提供一个警告也不好。来吧。我写了“用这个命令”,意思是问题中的陈述。此外,这与SQL注入无关。来自用户的是
COPY
数据,而不是
COPY
语句。或者您在问题的任何地方都看到了动态SQL吗?您能说明如何在python的上下文中使用它吗?虽然它本身并不危险,但肯定会有危险的方法来做。@jjanes,
curs.copy\u expert(sql='copy…',file=file\u obj)
psycopg2
cursor)应该是安全的。如果有人可以将
\n\\.\n
注入到文件\u obj中,那么他们可以获得之后要忽略的所有数据。但他们无法运行任意命令。