gpt4 book ai didi

postgresql - 在 PostgreSQL 中进行批量插入时如何防止 SQL 注入(inject)?

转载 作者:行者123 更新时间:2023-11-29 13:32:59 26 4
gpt4 key购买 nike

我最多要在一个批处理操作中插入 100 个项目。我是这样做的:

INSERT INTO MyTable (f1, f2, ..., fk) VALUES
(v11, v12, ..., v1k),
(v21, v22, ..., v2k),
...
(vn1, vn2, ..., vnk)

一切都很好,但是我是通过按原样连接值来构建这个字符串的,这意味着我的代码容易受到 SQL 注入(inject)的攻击。<​​/p>

我如何才能一方面继续使用批量插入语法,又能避免 SQL 注入(inject)?

编辑 1

我想提供更多背景信息。我将要使用的实际 SQL(此时编写代码)具有以下形式:

WITH new_parent AS (
INSERT into parent (g1, g2, ..., gm) VALUES (v1, v2, ..., vm) RETURNING id
) INSERT INTO MyTable (parent_id, f1, f2, ..., fk) VALUES
(new_parent.id, v11, v12, ..., v1k),
(new_parent.id, v21, v22, ..., v2k),
...
(new_parent.id, vn1, vn2, ..., vnk)

最佳答案

使用 COPY 语句 - 如果可能的话。它稍微快一点,需要的内存少得多,而且它是 SQL 注入(inject)防弹的 - 因为数据使用不同的 channel 。

关于postgresql - 在 PostgreSQL 中进行批量插入时如何防止 SQL 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19476208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com