Neo4j 数组属性中 JSON 的安全性

问题描述 投票:0回答:1

我的代码可以成功执行以下操作:

MATCH (c:Companies) WHERE c.CompanyID = "1234" SET c.Contacts = ['{"Name":"Test","Email":"[email protected]","Main":"0"}','{"Name":"Test 2","Email":"[email protected]"}']

这工作得很好。然而,我担心的是如何确保数组的值不被黑客攻击/注入?

典型的响应是使用以下参数:

MATCH (c:Companies) WHERE c.CompanyID = "1234" SET c.Contacts = ['$Element1','$Element2']

但是,这只会用我从用户那里收到的 JSON 替换这些值。除了自己清理输入之外,还有什么方法可以通过 Neo4j 来确保这一点?子参数可以吗:: MATCH (c:Companies) WHERE c.CompanyID = "1234" SET c.Contacts = ['$Element1','$Element2'] 'Element1' => '{"Name":"$Name1","Email":"$Email1","Main":"0/1"}'

我只是想确保我走在正确的轨道上并且安全。

neo4j cypher
1个回答
0
投票

如果你想限制潜在的损害,你必须解析字符串并验证它确实是一个具有预期属性的 JSON 对象(而不是可执行代码),并且它们的值具有正确的格式。

旁白:如果您需要对联系人列表中的数据进行数据库查询,则不应将联系信息存储在序列化字符串中。

© www.soinside.com 2019 - 2024. All rights reserved.