我正在使用Sequelize和Node.js/Express,我不确定如何在Sequelize的哪个部分逃脱。如何在Sequelize中逃脱?
var sequelize = ...;
var productId = 5; var productName = "test";
var product = sequelize.define('product',findAll({
where: {
$or: [
{productId: this.mysql.escapeId(productId)},
{productName: {$like: this.mysql.escapeId('%' + productName + '%')}},
]
}
})
.then(result => ...);
这不是工作,我得到吼叫查询:
SELECT `productId`, `productName` FROM `product` AS `product` WHERE (`product`.`productId` = '`5`' OR `product`.`productName` LIKE '\'%test%\'' ORDER BY `product`.`productId` ASC
这给我什么作为的结果。 那么如何用Sequelize逃脱?我也尝试了Sequelize.escape函数,但是我得到了错误“TypeError:Sequelize.escape不是函数”。
如果没有必要通过Sequelize转义值,我不明白它是如何保持安全的SQL注入攻击。 例如:productId ='5;删除*来自某些事物;'
非常感谢您的帮助!
有一个好的一天,
凡妮莎