以下sequelize调用是否易于进行sql注入?
var dataDirectlyFromTheUserWithoutValidation = req.query.filter
Record.findAll({where: dataDirectlyFromTheUserWithoutValidation})
答案 0 :(得分:0)
是,对于低于4的版本。
该库在SELECT
查询组成的source code中包含一个注释,指出,
如果使用字符串,则必须自己对其进行转义。
Sequelize将未经转义和未参数化的options.where
哈希值插入到由目标引擎执行的字符串中(我仅对MSSQL进行过检查)。
因此,调用者需要注意清理所有用户输入,以减轻其应用程序中可能存在的sql注入漏洞。
作者claim to have addressed从v4开始存在此漏洞。从v3.16开始,已经解决了与ORDER
和LIMIT
子句相关的其他漏洞。