我正在使用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;刪除*來自某些事物;'
非常感謝您的幫助!
有一個好的一天,
凡妮莎