此 TypeORM 查询是否容易受到 SQL 注入的攻击?

Is this TypeORM query vulnerable to avoid SQL Injections?

提问人:BazDaz4 提问时间:4/2/2023 最后编辑:jarlhBazDaz4 更新时间:4/9/2023 访问量:1000

问:

我在我的项目中使用 TypeORM。但是,对于此特定查询,我必须包含一个原始字符串。我知道使用原始字符串是个坏主意,但是我不确定解决它并保护它的最佳方法是什么:


return this.restaurantRepo.createQueryBuilder()
.insert()
.into(Restaurants)
.values([{
   name: name,
   location: () => `ST_GeomFromText('POINT(${latitude} ${longitude})')`,
   user: user,
},
]).execute(); `

生产线

location: () => 'ST_GeomFromText('POINT(${latitude} ${longitude})')'

是潜在危险所在。 那么问题来了,上述查询是否易受攻击,如果是,应该如何保护它?

nestjs typeorm sql 注入

评论

0赞 FreelanceConsultant 4/2/2023
什么?user
0赞 FreelanceConsultant 4/2/2023
还有你的表架构是什么。Restaurants

答:

1赞 Akash Sarkar 4/9/2023 #1

您可以像这样重写查询:

return this.restaurantRepo.createQueryBuilder()
  .insert()
  .into(Restaurants)
  .values([{
    name: name,
    location: () => `ST_GeomFromText('POINT(:latitude :longitude)')`,
    user: user,
  }])
  .setParameter('latitude', latitude)
  .setParameter('longitude', longitude)
  .execute();

您可以参考内容以获取更多信息。