1

这些天我正在使用 AQL,并且我正在创建一个用于动态创建 AQL 脚本的库。

因为我没有找到与 PARAMETER INJECTION 问题(如 SQL INJECTION)相关的任何内容,如果我直接在 AQL 查询字符串中设置我的 FILTER 变量,您认为这是否安全?

4

1 回答 1

3

如果您对所有用户定义的输入使用 bindParameters,则 AQL 解析器不会评估插入的值,因此不会执行注入的代码。

安全查询:

FOR x IN items FILTER x.name == @name RETURN x

不安全的查询:

"FOR x IN items FILTER x.name == " + name + " RETURN x"

插入某事。喜欢

'a' LET t = (FOR h IN items DELETE h)

in name 将在保存查询中返回具有该字符串的所有元素(无害)。在不安全的查询中,它将删除项目中的所有元素(有害)。

于 2015-08-13T07:34:46.050 回答