ExecutionEngine.execute(String,Map<String,Object>)会阻止"NoSQL Injection Attacks"吗?



因此,我通过JDBC在基于SQL的数据库中使用PrepareStatements来防止SQL注入攻击。

我想知道如果使用Neo4J的Java API ExecutionEngine.execute(String,Map<String,Object>)(见1)防止对Cypher的注入攻击,如果使用得当?

详细说明一下,如果早期执行参数替换,然后解析Cypher,我看不出这将如何帮助防止注入攻击,但如果解析Cypher,然后替换参数,那么我可以看到它如何防止注入攻击。

众所周知,JDBC/SQL中的PrepareStatements可以防止NoSQL攻击,我想确保使用ExecutionEngine.execute(String,Map<String,Object>)将为我提供相同级别的保护。

谢谢! !

巴里

是。它不是一个简单的字符串替换,它实际上首先被解析,查询对象被缓存,然后参数被填充。这对性能也有好处,因为它不需要在参数更改时重新解析查询。

最新更新