第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Neo4j 3.5 全文搜索僅使用嵌入式 API 而不使用 Cypher

Neo4j 3.5 全文搜索僅使用嵌入式 API 而不使用 Cypher

不負(fù)相思意 2022-05-12 15:47:01
我在我的應(yīng)用程序中使用了新的 Neo4j 3.5 全文搜索功能。目前我通過嵌入式 API 執(zhí)行 Cypher 來做到這一點(diǎn)。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    return db.execute(cypherQuery);}我認(rèn)為可以利用這種方法來注入 Cypher。有沒有辦法只使用 API 來執(zhí)行全文搜索?
查看完整描述

1 回答

?
慕哥6287543

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ì)劃。


查看完整回答
反對(duì) 回復(fù) 2022-05-12
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)