1 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
為避免 Cypher 注入攻擊,您應(yīng)該將輸入作為參數(shù)傳遞,如下所示:
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);
}
[更新]
注意:參數(shù)的使用是 neo4j 官方推薦的。例如,引用 Java 驅(qū)動(dòng)程序StatementRunner的 Javadoc :
強(qiáng)烈建議使用參數(shù),它有助于避免危險(xiǎn)的密碼注入攻擊并提高數(shù)據(jù)庫性能,因?yàn)?Neo4j 可以更頻繁地重用查詢計(jì)劃。
添加回答
舉報(bào)