将选项sql注入哪里?

时间:2018-10-09 16:21:03

标签: node.js sequelize.js

以下sequelize调用是否易于进行sql注入?

var dataDirectlyFromTheUserWithoutValidation = req.query.filter 
Record.findAll({where: dataDirectlyFromTheUserWithoutValidation})

1 个答案:

答案 0 :(得分:0)

,对于低于4的版本。

该库在SELECT查询组成的source code中包含一个注释,指出,

  

如果使用字符串,则必须自己对其进行转义。

Sequelize将未经转义和未参数化的options.where哈希值插入到由目标引擎执行的字符串中(我仅对MSSQL进行过检查)。

因此,调用者需要注意清理所有用户输入,以减轻其应用程序中可能存在的sql注入漏洞。

作者claim to have addressed从v4开始存在此漏洞。从v3.16开始,已经解决了与ORDERLIMIT子句相关的其他漏洞。