避免在Sequelize“ like”子句中进行代码注入

时间:2019-10-24 07:49:11

标签: escaping sequelize.js sql-like

下面是我在续集中用于不区分大小写的搜索的代码。但是,当用户要使用'_'和'%'搜索文本时,事实证明该sql将返回表中的所有记录,因为'_'和'%'是like子句中的通配符,因此需要进行转义。

where.text = sequelize.where(
    sequelize.fn('LOWER', sequelize.col('text')),
    {
        $like: '%' + search_word.toLowerCase() + '%'
    }
);
const result = await Table.findAndCountAll({
    where
})

是否可以使用内置方法来解决此代码注入问题?我已经尝试过mysql.escape,它不是为like子句创建的,并且不会转义'_'和'%'。

0 个答案:

没有答案