SQL C# influx 客户端中的注入预防

SQL injection prevention in C# influx client

我正在尝试编写 Influx 查询并使用绑定参数防止 SQL 注入。 Influx 文档讨论了 CURL 命令 here and I saw a GitHub issue relating to their Java client here

有人可以帮助我 SQL 使用带有多个 [ple WHERE 子句的 C# Influx 客户端进行注入预防。[​​=13=]

我的查询:

SELECT * FROM "retentionPolicy.SystemGuid" WHERE time >= "startTime" AND time <= "endTime" AND Quality = "good"

为避免 sql 注入,您应该使用参数化查询。

怎么做?

不应将查询作为字符串参数传递,而应将查询作为包含占位符和这些占位符的值的字符串参数传递

例如:

using (SqlConnection conn = new SqlConnection(DatabaseConnectionString))
    using (SqlCommand cmd = conn.CreateCommand())
    {
      conn.Open();
      cmd.CommandText = "SELECT * FROM Users WHERE UserName = @UserName AND Password = @Password";
    cmd.Parameters.AddWithValue("@UserName", txtBoxUserName.Text);
    cmd.Parameters.AddWithValue("@Password", txtBoxPAssword.Text);
    cmd.ExecuteNonQuery();
    }

SQL 注入通常不是 InfluxDB 的问题,因为它不支持 SQL。 InfluxDB 使用 InfluxQL,这是一种类似于 SQL 的语言,但它不是 SQL。

我知道这是一个非常古老的话题,可能作者已经找到了答案或者已经找到答案了。对于偶然发现这个问题的人 -

InfluxDB 支持参数化查询。 这里记录了一个很好的例子 -

https://github.com/MikaelGRA/InfluxDB.Client

使用 InfluxDB 驱动程序的示例查询 -

var resultSet = await client.ReadAsync( D b, “SELECT * 来自 myMeasurementName WHERE time >= $myParam”, new { myParam = new DateTime( 2010, 1, 1, 1, 1, 3, DateTimeKind.Utc ) });