gpt4 book ai didi

security - neo4j:身份验证 - 只允许读取密码查询

转载 作者:行者123 更新时间:2023-12-02 01:56:41 25 4
gpt4 key购买 nike

我正在使用 neo4j 1.9.4,我想使用 neo4jphp 在(公共(public))网站上显示有关图表的一些信息。为了获取一些数据,我在 neo4jphp 中使用密码查询。这些查询显然只从图中读取数据。

我必须确保网站的访问者无法修改图表中的任何数据。因此,我设置了 authentication-extension插件并创建了两个用户(一个具有只读“RO”,一个具有读写“RW”访问权限),如此处所述。然而,neo4jphp 中的密码查询仅适用于具有 RW 权限的用户,而不适用于具有 RO 权限的用户。

我知道http://docs.neo4j.org/chunked/stable/security-server.html#_security_in_depth几乎解释了如何保护 neo4j,但我绝对不知道该怎么做。尤其是“arbitrary_code_execution”这一段好像很有意思,就是不知道怎么用。

如何实现可以从网络服务器执行读取密码查询?顺便说一句:网络服务器(显示一些结果)和 neo4j 在不同的机器上运行。

如果有任何帮助,我将不胜感激,谢谢!

编辑:我的场景实际上并没有那么复杂,所以我确信必须有一个解决方案:从本地主机授予任何访问权限(读写),而从远程网络访问服务器仅限于从图中读取。我怎样才能做到这一点?如果那不可能:我如何限制从远程 Web 服务器访问某些预定义(密码)查询,其中用户只能提供一些参数?

最佳答案

您应该按照 http://docs.neo4j.org/chunked/stable/security-server.html#_security_in_depth 中的说明使用 apache 代理

您需要的信息是发布密码查询的 URL:

http://localhost:7474/db/data/cypher  

neo4php 只是一个包装器,最终将发布到该 url。您可以在此处找到更多详细信息:http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html

所以基本上这意味着您只允许使用密码 url 的查询访问 neo4j 服务器。


关于只读密码查询:

我没有检查 neo4jphp,但是如果你直接使用 REST API,你可以通过添加到 conf/neo4j.properties 将数据库设置为只读:

read_only=true

您可以在 webadmin 中检查服务器确实处于只读模式

enter image description here

刚刚测试过,服务器将只接受读取查询:

enter image description here

并会返回如下响应

{
"message": "Expected to be in a transaction at this point",
"exception": "InternalException",
"fullname": "org.neo4j.cypher.InternalException",
"stacktrace":
[...],
"fullname" : "org.neo4j.graphdb.NotInTransactionException"
}

关于security - neo4j:身份验证 - 只允许读取密码查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com