我最近在用TypeORM的Raw函数拼接查询条件,但担心这样会不会有SQL注入漏洞?比如下面这段代码:
const users = await getRepository(User)
.find({
where: {
name: Raw(alias => <code>${alias} LIKE '%${keyword}%'</code>)
}
});
虽然功能跑通了,但keyword是用户输入的,直接插进字符串里总觉得不安全。官方文档说要用参数化,但Raw里怎么传参啊?有没有更安全的写法?
这样TypeORM会帮你做参数转义。记着永远别把用户输入直接扔进SQL字符串,这习惯很危险。