eXist-DB 为 REST / PUT 请求配置安全性
eXist-DB configure security for REST / PUT requests
我的网站上有一个简单的联系表,它成功地向我的 eXist-db 发出了 HTTP PUT
。
每个 PUT
创建一个独特的 XML 文档,如下所示:
http://medieval-inquisition.huma-num.fr/exist/rest/db/apps/deheresi/comm/some_unique_name.xml
执行此操作时,服务器要求输入密码。
为 public 写入而不是 read/edit 配置 HTTP PUT
的最佳实践是什么?
这仅仅是为只允许对此集合进行写访问的 REST activity 创建一个唯一的用户/密码的问题吗?
还有其他的考虑吗?
是否有具体的、推荐的 eXist-db 方法?
提前致谢。
所以你有几个选择:
利用 Collection 权限,例如owner/group/mode/acl 并使用在 HTTP PUT 中经过身份验证的用户或组来控制谁可以写入 Collection。
Collection 的模式 rwx
:
r
(读取)使 user/group 能够列出 Collection 的内容
w
(写入)使 user/group 能够写入 Collection;请注意,这
包括删除文档!
x
(执行)允许 user/group 打开 Collection,没有 'x' 则 r
或 w
都不允许.
但是,由于 Collections 是通过 HTTP REST API 公开的,除非您禁用 REST API,您可能不想提供 public用户 w
访问您的 Collection。因为他们可以在 Collection.
中仅通过 HTTP DELETE 文档
相反,您可能需要一个 public 用户,该用户对通过 REST [=62] 公开的 XQuery 主模块具有 s
(set-uid + 执行)访问权限=] 或 RESTXQ end-point。当通过 HTTP PUT 访问时,这个 main-module 将假定一个有效的用户 ID,并写入 Collection。 HTTP PUT 到 XQuery 主模块而不是 Collection:
的优势
- 您可以使用 XQuery 主模块忽略 HTTP DELETE/POST/GET 等,这会阻止用户直接修改 Collection.
- 您不需要在 eXist-db 之外共享您的特权用户的凭据。
- XQuery 主模块变得特定于任务,因此具有更小的攻击服务并充当有限的访问控制点。
在您的 XQuery 主模块中,您还可能希望对正在创建的文档设置特定权限。
我的网站上有一个简单的联系表,它成功地向我的 eXist-db 发出了 HTTP PUT
。
每个 PUT
创建一个独特的 XML 文档,如下所示:
http://medieval-inquisition.huma-num.fr/exist/rest/db/apps/deheresi/comm/some_unique_name.xml
执行此操作时,服务器要求输入密码。
为 public 写入而不是 read/edit 配置 HTTP PUT
的最佳实践是什么?
这仅仅是为只允许对此集合进行写访问的 REST activity 创建一个唯一的用户/密码的问题吗?
还有其他的考虑吗?
是否有具体的、推荐的 eXist-db 方法?
提前致谢。
所以你有几个选择:
利用 Collection 权限,例如owner/group/mode/acl 并使用在 HTTP PUT 中经过身份验证的用户或组来控制谁可以写入 Collection。
Collection 的模式
rwx
:r
(读取)使 user/group 能够列出 Collection 的内容
w
(写入)使 user/group 能够写入 Collection;请注意,这 包括删除文档!x
(执行)允许 user/group 打开 Collection,没有 'x' 则r
或w
都不允许.
但是,由于 Collections 是通过 HTTP REST API 公开的,除非您禁用 REST API,您可能不想提供 public用户
w
访问您的 Collection。因为他们可以在 Collection. 中仅通过 HTTP DELETE 文档
相反,您可能需要一个 public 用户,该用户对通过 REST [=62] 公开的 XQuery 主模块具有
的优势s
(set-uid + 执行)访问权限=] 或 RESTXQ end-point。当通过 HTTP PUT 访问时,这个 main-module 将假定一个有效的用户 ID,并写入 Collection。 HTTP PUT 到 XQuery 主模块而不是 Collection:- 您可以使用 XQuery 主模块忽略 HTTP DELETE/POST/GET 等,这会阻止用户直接修改 Collection.
- 您不需要在 eXist-db 之外共享您的特权用户的凭据。
- XQuery 主模块变得特定于任务,因此具有更小的攻击服务并充当有限的访问控制点。
在您的 XQuery 主模块中,您还可能希望对正在创建的文档设置特定权限。