私はNode.js/ExpressでSequelizeを使用しています。どこでSequelizeを使用してエスケープするかわかりません。私は結果として何も与えないSequelizeでエスケープするには?
SELECT `productId`, `productName` FROM `product` AS `product` WHERE (`product`.`productId` = '`5`' OR `product`.`productName` LIKE '\'%test%\'' ORDER BY `product`.`productId` ASC
:これが動作しない
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 => ...);
、私は次のクエリを取得します。 Sequelizeでエスケープするには?私も関数Sequelize.escapeを試しましたが、 "TypeError:Sequelize.escapeは関数ではありません"というエラーが出ました。
Sequelizeのおかげで値をエスケープする必要がなければ、SQLインジェクション攻撃からどのように安全になるのか分かりません。 例:productId = '5; *何かから削除する; '
ありがとうございました!
は良い一日を、
ヴァネッサ