0

因此,我通过 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>)将为我提供相同级别的保护。

谢谢!!

巴里

4

1 回答 1

0

Yes. It's not a simple string substitution, it actually gets parsed first, the query object is cached, and then parameters are filled in. This is good for performance, too, as it doesn't need to reparse queries when just the parameters are changed.

于 2013-05-14T14:42:27.653 回答