typescript - 如何使用包含模型中的属性来创建 where 条件?
问题描述
我想在我的查询中使用包含模型的属性,我使用 sequelize 和 sequelize-typescript 以及一些以前的版本,我使用文字将 sql 变量注入到我的查询模型中并且可以工作,但是这些方法已经干涸,因为它是一个 SQL 注入漏洞现在,我不知道访问我的包含模型的属性有什么用
我想使用 cve_agenda 属性来评估 invitados.cve_funcionario 在同一级别的 or 运算符
我用这些:
M_AG_EVENTOS.findAll({
where: {
$or: [
cve_agenda: cve_agenda, ORM.instance.seql.literal(`"invitados"."cve_funcionario" =${cve_funcionario}`),
ORM.instance.seql.literal(`"comisionado"."cve_funcionario" = ${cve_funcionario}`)]
} ```
解决方案
在您的示例中,SQL 注入是可能的,因为您直接在查询字符串中传递参数。防止 SQL 注入的最好方法是使用准备好的语句。然后将 SQL 查询和参数分开,数据库将参数作为文本读取(因此即使参数值是DELETE FROM users
它也不会被执行,只是被视为字符串)。Sequelize
你可以通过使用绑定参数来做到这一点。
但回到你的问题,这里是一个如何查询include
外观的例子:
ModelA.findAll({
where: { name: 'John' },
include: [{
model: ModelB,
as: 'modelB',
where: { active: true },
}],
});
推荐阅读
- rxjs - 更好的订阅冗余解决方案
- android - 我们如何在 EditText 边框上写文字?
- batch-file - 如何在 Windows 批处理脚本中对动态变量值进行子串化
- mongodb - 我在尝试运行我的数据库时遇到错误
- python-3.x - 为什么这个 python 函数返回 len=7 而不是 len=6?
- javascript - 无法在 puppeteer-jest 测试框架中解析本地 JSON 数据?
- bash - 如何在要连接的每个文件之间添加新行 (\n)
- node.js - 前后连接问题
- r - 绘制混合效应模型的预测区间
- api - Sharepoint 错误:此项目不支持点赞