PostgreSQL COPY SQL注入

Mir*_*iro 3 python postgresql sql-injection

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

COPY "ns"."table" ("col1", "col2") FROM STDIN WITH CSV HEADER DELIMITER AS ','

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

谢谢!

Lau*_*lbe 6

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

如果用户提供了错误的数据,那么您最终会在表中得到错误的数据,或者在最坏的情况下,您可能会收到错误,因为文件不是正确的 CSV 或因为违反了约束。

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