Чтобы избежать атак с использованием Cypher, вы должны передать входные данные как параметры , например:
public Result search(String term, String index) {
// The query
String cypherQuery =
"CALL db.index.fulltext.queryNodes($index, $term) YIELD node, score\n" +
"RETURN id(node), score";
// Execute query
Map<String, Object> params = new HashMap<>();
params.put("term", term);
params.put("index", index);
return db.execute(cypherQuery, params);
}
[UPDATE]
ПРИМЕЧАНИЕ: использование параметров официально рекомендовано neo4j. Например, чтобы процитировать Javadoc для драйвера Java StatementRunner :
Использование параметров настоятельно рекомендуется, оно помогает избежать опасных шифров
инъекция атак и повышает производительность базы данных, как Neo4j может
повторное использование планов запросов чаще.