【问题标题】:How to safely call a variadic function from nodejs如何安全地从 nodejs 调用可变参数函数
【发布时间】:2022-11-15 18:28:38
【问题描述】:

使用 postgres 和 node-pg。

CALL schema.function(${sql})

function 是一个接受数组的可变参数函数。它对 SQL 注入开放。注射案件如何解决?

我的存储过程使用自定义类型:

CREATE TYPE isf.event_array AS 
(
    "id"   BIGINT,
    "topic"         CHARACTER VARYING(255),
    "type"    TEXT,
    "setId"   BIGINT,
    "eventId"       CHARACTER (36),
    "eventType"     CHARACTER VARYING(50),
    "metadata"      JSONB,
    "payload"       JSONB
);
END IF;

我理解参数化查询的使用,但是在这种情况下,它需要传递一个数组。

非常感谢

【问题讨论】:

标签: javascript node.js postgresql node-postgres node-pg-pool


【解决方案1】:

与往常一样,在处理传递动态值时,使用 parameterised query

await client.query('CALL schema.function($1::json);', [JSON.stringify(arr)]);

【讨论】:

  • 看起来很完美,谢谢 Bergi
猜你喜欢
  • 1970-01-01
  • 2018-10-25
  • 2019-09-14
  • 2017-10-12
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
相关资源
最近更新 更多