簡體   English   中英

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 方法來保護文字塊中的變量?

你可以使用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

您可以使用replacements? 避免 sql 注射:

sequelize.query(`"foo".name ILIKE '%?%'`,
  { replacements: [myVar], type: sequelize.QueryTypes.SELECT }
)

嘗試

description = {
    $like: sequelize.literal(`${myVar} ESCAPE '\\'`)
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM