首页 > 解决方案 > 使用转义构建 CosmosDB 查询字符串

问题描述

我想构建一个 cosmosdb sql 查询,因为我使用的是一个 rest 接口,它接受 SQL 查询(不要问为什么,我不能改变它:()...

现在我想用一些影响 WHERE 子句的参数构建该查询。我认为转义这些参数是一个好主意,以防止 sql 注入。

但我刚刚找到了这些构建查询的方法:

var param = new SqlParameter();
param.add("@test", "here some string to inject");
var query = new SqlQuerySpec("SELECT @test FROM table", param);

现在我可以在没有 sql 注入的情况下对 cosmos 进行 sql 调用。但我不想要这个。我只想获取查询字符串。但我需要来自“查询”的完整查询。但似乎只有方法query.getQueryText()。但这只是返回字符串“SELECT @test FROM table”。

知道我的解决方法吗?或者也许只是一个很好的包,我可以用我自己的字符串转义。

标签: javasqlazuresecurityazure-cosmosdb

解决方案


我发现这种升级的东西不会发生在客户网站上的信息。它发生在 dbms 中。所以我需要一个休息接口,在那里我可以传递参数。

Azure Cosmos DB SQL Like,准备好的语句


推荐阅读