因此,从在线文档和无数示例中,很明显您可以在WHERE
通过 HTTP 提交到 InfluxDB 服务器的查询的子句中绑定参数,如下所示:
curl -G 'http://example.com/query?' \
--data-urlencode 'q=SELECT * FROM mymeasurement WHERE value > $min' \
--data-urlencode 'db=mydatabase' \
--data-urlencode 'params={"min":0}
这很棒,它可以防止代码注入。但是,如果我正在对事物进行分组怎么办?按时间分组时如何防止代码注入?这个:
curl -G 'http://example.com/query?' \
--data-urlencode 'q=SELECT * FROM mymeasurement GROUP BY time($interval)'
--data-urlencode 'db=mydatabase'
--data-urlencode 'params={"interval":"1m"}'
不起作用。它给了我这样的回应:
{ "results": [{
"statement_id": 0,
"error": "time dimension must have duration argument"
}]}
这表明绑定不起作用。那么……怎么办?