【发布时间】:2021-07-10 15:52:34
【问题描述】:
看看这段代码:
var url = "https://mydatabase.documents.azure.com:443/";
var db = "my-db";
var key = "mykey";
var sqlQueryText = $"SELECT * FROM CelCoinData f WHERE f.id = '{data.UniversalId}' and f.uri = '{data.Uri}'";
var cliente = new CosmosClient(url, key);
var database = cliente.GetDatabase(db);
var containers = database.GetContainer("MyContainer");
var dados = new DataCosmosDB();
var iterator = containers.GetItemQueryIterator<DataCosmosDB>(sqlQueryText);
在我看来,这是教科书 SQL 注入,但 SonarCloud 并没有这样标记它。为什么?
Cosmos 对它无懈可击吗? cosmos 客户端是否以某种方式对此进行了计算并相应地进行了调整,并且 sonar 是否意识到了这一点?
【问题讨论】:
-
我很好奇你关心的是什么,关于 Cosmos DB 的 SQL 注入,因为 SQL API 的语言仅限于
SELECT:没有插入、没有更新、没有表创建/删除(嗯, 在这种情况下是集合)。
标签: sonarqube azure-cosmosdb sql-injection sonarcloud