2

PHP と neoxygen/neo4j-neoclient を使用してグラフ データベースを構築し、文字列をエスケープして Cypher クエリに安全に引用できるようにする方法を探しています。Cypher式に関するドキュメントは知っていますが、おそらく誰かがすでにPHPでそのようなエスケープ関数を書いているのではないかと思っていました(または、PHPに移植できるように他の言語)? おそらく、MySQL などに既に存在する PHP エスケープ関数を使用して回避できますか?

編集:最後に、誰かが sendCypherQueries でパラメーターを渡す方法を探している場合に備えて、次の例を示します。

$parameters = array(
    'key'=>'example',
);

$client->sendCypherQuery("MERGE (node {key:{key}})", $paramteres);

これは Cypher クエリと同じです:

MERGE (node {key:'example'})
4

2 に答える 2

2

潜在的な「インジェクション」と説明することは、パラメーターとして渡さないすべての変数に対して可能です。

そのため、 Cypherと NeoClient の場合は、常に変数をメソッドの 2 番目の引数として渡すようにしてくださいsendCypherQuery

補足として、PHP ではmysql_real_escape_stringは PHP5.5.0 以降、2 年以上前に廃止されました。これが、eg に PDO を使用し、変数をクエリ パラメータとしても渡す理由です。

于 2015-07-16T19:45:53.800 に答える