提问人:Nelusha 提问时间:10/14/2022 更新时间:10/15/2022 访问量:692
typeorm querybuilder select、orderBy、groupBy 是否安全 SQL 注入安全?
Is typeorm querybuilder select, orderBy, groupBy are SQL injection safe?
问:
如果 TypeORM 查询生成器 select、orderBy 和 groupBy 不是 SQL 注入安全的,如何将它们转换为 SQL 注入安全?
qb.orderBy(
`incident.${query.sortColum}`,
query.sortOrder === 'desc' ? DESCENDING : ASCENDING,
);
qb.select([
`incident.${query.type}`,
`COUNT('') As "count"`,
`"incident"."locationGroupIds"[${level}] as groupId`,
]);
qb.addGroupBy(`incident.${query.type}`);
答:
0赞
Egret
10/15/2022
#1
这些元素不能绑定到 JDBC 中,这就是 TypeORM 不支持它们作为参数化查询的原因。
有两种方法可以安全地执行此操作 - 理想情况下,您应该同时使用这两种方法:
- 通过正面/白名单验证来验证这些列。应检查每个列名是否存在于关联的表中。
- 您应该将列名称引号引号 - 在列周围添加单引号。如果这样做,则需要小心验证名称中没有引号,并错误地显示或转义任何引号。您还需要注意,添加引号会使名称区分大小写。
评论