Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j &引用;注射;赛弗对休息的担忧_Neo4j_Cypher_Code Injection - Fatal编程技术网

Neo4j &引用;注射;赛弗对休息的担忧

Neo4j &引用;注射;赛弗对休息的担忧,neo4j,cypher,code-injection,Neo4j,Cypher,Code Injection,我想知道当我查询REST时是否有查询注入的问题 参数化查询肯定会使事情更清晰,但我也能够使用字符串连接进行查询,以操作属性和标签 我发现后一种方法更灵活,因为有时我无法按照参数范例查询我想要的方式。() 如果不担心某种注入,concat查询字符串是否存在安全风险?我个人对查询Neo4j没有太深的理解,所以我希望有更多的选择,并愿意尝试任何建议 编辑:阅读韦斯的评论后。我想请观众快速浏览一下发布的链接。我想使用where和Set的那些情况呢?参数化的最佳方法是什么 谢谢大家! 假设有人知道你的问题

我想知道当我查询REST时是否有查询注入的问题

参数化查询肯定会使事情更清晰,但我也能够使用字符串连接进行查询,以操作属性和标签

我发现后一种方法更灵活,因为有时我无法按照参数范例查询我想要的方式。()

如果不担心某种注入,concat查询字符串是否存在安全风险?我个人对查询Neo4j没有太深的理解,所以我希望有更多的选择,并愿意尝试任何建议

编辑:阅读韦斯的评论后。我想请观众快速浏览一下发布的链接。我想使用where和Set的那些情况呢?参数化的最佳方法是什么


谢谢大家!

假设有人知道你的问题,这里有一个假设情况。如果接受用户输入并将其连接到查询中,则可能会发生以下情况:

"MATCH (u:User) WHERE u.id = " + userId + " RETURN u"
让我们尝试以下用户ID:

"1 WITH count(1) AS dummy MATCH (u:User) OPTIONAL MATCH (u)-[r]-() DELETE u, r "
我相信有些人会想出更糟糕的例子


这可以通过参数立即解决。您也可以对输入进行消毒,但如果可能的话,我会采取安全的方法。

谢谢韦斯!我已经编辑了这个问题。如果你能看一看,我将不胜感激。你能给我们一个你正在做的具体例子吗?我不确定这是否是你的意思,但你不能参数化整个WHERE子句。。。参数替换表达式,而不是子句/子类。在可以插入
1+2
的任何位置,都可以替换为参数。