因此,我通过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>)也能提供相同级别的保护。
谢谢!!
巴里
发布于 2013-05-14 22:42:28
是。这不是一个简单的字符串替换,它实际上首先被解析,query对象被缓存,然后填充参数。这对性能也有好处,因为当只更改参数时,它不需要重新解析查询。
https://stackoverflow.com/questions/16490712
复制相似问题