Javascript 格式化SQL查询以避免SQL注入

Javascript 格式化SQL查询以避免SQL注入,javascript,sql,node.js,postgresql,sql-injection,Javascript,Sql,Node.js,Postgresql,Sql Injection,我必须在Node.js应用程序中使用下面的SQL查询 SELECT * FROM my_table WHERE my_column IN ['name1','name2'] 数组['name1','name2']由用户输入。有时它可能包含两个以上的名称。如何使用pg格式包格式化此查询以避免SQL注入?IN子句参数不应该使用括号包装吗? 无论如何,这里有一个使用pg格式格式化的示例 var格式=要求“pg格式”; var sql=formatSELECT*从我的_表中选择,其中我的_列位于%L、

我必须在Node.js应用程序中使用下面的SQL查询

SELECT * FROM my_table
WHERE my_column IN ['name1','name2']
数组['name1','name2']由用户输入。有时它可能包含两个以上的名称。如何使用pg格式包格式化此查询以避免SQL注入?

IN子句参数不应该使用括号包装吗? 无论如何,这里有一个使用pg格式格式化的示例

var格式=要求“pg格式”; var sql=formatSELECT*从我的_表中选择,其中我的_列位于%L、%L、'Alice'、'Bob';//名字1,名字2 console.logsql; 编辑1: 使用数组的动态名称

var格式=要求“pg格式”; 变量名称=['Alice'、'Bob'、'Charlie']; var inCaluseStr=+Arraynames.length.fill'%1'.join','+; var sql=format.withArraySELECT*从my_表中选择,其中my_列位于+inCaluseStr中,名称; console.logsql; 我希望这有帮助。

IN子句参数不应该用括号包装吗? 无论如何,这里有一个使用pg格式格式化的示例

var格式=要求“pg格式”; var sql=formatSELECT*从我的_表中选择,其中我的_列位于%L、%L、'Alice'、'Bob';//名字1,名字2 console.logsql; 编辑1: 使用数组的动态名称

var格式=要求“pg格式”; 变量名称=['Alice'、'Bob'、'Charlie']; var inCaluseStr=+Arraynames.length.fill'%1'.join','+; var sql=format.withArraySELECT*从my_表中选择,其中my_列位于+inCaluseStr中,名称; console.logsql;
我希望这会有所帮助。

请包含实际的Node.js代码,包括执行查询的代码。您在上面发布的SQL不是有效的Postgres,我们需要查看实际代码。一般概念:动态生成占位符,然后将值绑定到每个占位符,这是安全的。请包含您的实际Node.js代码,包括执行查询的代码。您在上面发布的SQL不是有效的Postgres,我们需要查看实际代码。一般概念:动态生成占位符,然后将值绑定到每个占位符,这是安全的。谢谢。但我必须将'name1'和'name2'作为数组传递。因为名称是由用户输入的,可以有2个以上的名称。选中编辑1。谢谢。不使用“格式”和将文本与绑定分开可能会更干净。谢谢。这个方法很好,谢谢。但我必须将'name1'和'name2'作为数组传递。因为名称是由用户输入的,可以有2个以上的名称。选中编辑1。谢谢。不使用“格式”和将文本与绑定分开可能会更干净。谢谢。这个方法很好。