Javascript 格式化SQL查询以避免SQL注入
我必须在Node.js应用程序中使用下面的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、
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。谢谢。不使用“格式”和将文本与绑定分开可能会更干净。谢谢。这个方法很好。