Sequelize:在文字字符串中转义字符串
Sequelize: escape string in a literal string
我可以在 Sequelize 中使用 literal
手动构建一个 SQL 查询部分:
sequelize.literal(`"foo".bar ILIKE '%baz%'`)
但是如果我想在这个文字块中添加一个var,我现在引入SQL注入漏洞:
sequelize.literal(`"foo".name ILIKE '%${myVar}%'`)
是否有 Sequelize 方法来保护文字块中的变量?
尝试
description = {
$like: sequelize.literal(`${myVar} ESCAPE '\'`)
};
您可以使用 replacements
和 ?
来避免 sql 注入:
sequelize.query(`"foo".name ILIKE '%?%'`,
{ replacements: [myVar], type: sequelize.QueryTypes.SELECT }
)
您可以使用 escape
:
const escapedSearch = sequelize.escape(`%${myVar}%`);
sequelize.literal(`"foo".name ILIKE ${escapedSearch}`);
参见:https://sequelize.org/master/class/lib/sequelize.js~Sequelize.html#instance-method-escape
我可以在 Sequelize 中使用 literal
手动构建一个 SQL 查询部分:
sequelize.literal(`"foo".bar ILIKE '%baz%'`)
但是如果我想在这个文字块中添加一个var,我现在引入SQL注入漏洞:
sequelize.literal(`"foo".name ILIKE '%${myVar}%'`)
是否有 Sequelize 方法来保护文字块中的变量?
尝试
description = {
$like: sequelize.literal(`${myVar} ESCAPE '\'`)
};
您可以使用 replacements
和 ?
来避免 sql 注入:
sequelize.query(`"foo".name ILIKE '%?%'`,
{ replacements: [myVar], type: sequelize.QueryTypes.SELECT }
)
您可以使用 escape
:
const escapedSearch = sequelize.escape(`%${myVar}%`);
sequelize.literal(`"foo".name ILIKE ${escapedSearch}`);
参见:https://sequelize.org/master/class/lib/sequelize.js~Sequelize.html#instance-method-escape