ArangoDB AQL 是否受注入问题影响?
ArangoDB AQL is affected by the injection issue?
最近我在使用 AQL,我正在创建一个用于动态创建 AQL 脚本的库。
因为我没有发现任何与 PARAMETER INJECTION 问题相关的内容(例如 SQL INJECTION),如果我直接在 AQL 查询字符串中设置 FILTER 变量,您认为这安全吗?
如果您对所有用户定义的输入使用 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 将 return 所有在保存查询中具有该字符串的元素(无害)。
在不安全的查询中,它会丢弃项目中的所有元素(有害)。
最近我在使用 AQL,我正在创建一个用于动态创建 AQL 脚本的库。
因为我没有发现任何与 PARAMETER INJECTION 问题相关的内容(例如 SQL INJECTION),如果我直接在 AQL 查询字符串中设置 FILTER 变量,您认为这安全吗?
如果您对所有用户定义的输入使用 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 将 return 所有在保存查询中具有该字符串的元素(无害)。 在不安全的查询中,它会丢弃项目中的所有元素(有害)。