【发布时间】:2017-02-03 06:49:01
【问题描述】:
我的 rawQuery 需要逗号分隔的字符串,但根据文档 here,第二个参数应该是一个数组:
一个动态的、不受信任的字符串数组,使用此模型数据库的适当模板语法进行 SQL 转义和注入 SQL 字符串。 (如果您没有要注入的动态值,则只需在此处使用一个空数组。)
var rawQuery = 'SELECT * FROM "user" WHERE "user"."email" IN ($1)';
User.query(rawQuery, ['a@a.com', 'b@b.com'], function (err, rawResult) {
if (err) { return res.serverError(err); }
return res.ok(rawResult.rows);
});
如何在不通过数组传递变量的情况下使该查询工作?我可以像这样直接添加变量
var rawQuery = 'SELECT * FROM "user" WHERE "user"."email" IN (' + foo +')';
但是会容易受到SQL注入攻击。
【问题讨论】:
标签: postgresql sails.js sails-postgresql