是否可以使用 CouchDB 的过滤复制仅将 ACL 的数据子集复制到用户?



特别是,过滤复制可以用PouchDB完成吗?我想确保客户端不能省略过滤器,从而与整个数据库同步。

没有 CouchDB 复制"协议"。复制过程只是一个客户端连接到两个 CouchDB 端点,从一个端点读取文档,然后将它们写入另一个端点。当然,CouchDB 内置了这样的客户端("复制器"(;但从概念上讲,它是一个第三方应用程序。

这意味着,您可以从应用程序的安全分析中删除复制。首先考虑正常的 Web 客户端读取和写入您的服务器。锁定它。您可能会假设一个假设的对手使用被黑客入侵的 Web 浏览器,或者使用自定义 HTTP 客户端(例如,不尊重跨源策略(。

解决了该问题后,复制将必然遵循您的安全策略。

换句话说,在 PouchDB 和 CouchDB 之间复制:

  • 如果要推送到远程服务器,则安全工具是远程validate_doc_update功能。
  • 如果从远程服务器拉取,则安全工具是数据库_security对象,特别是"members"数组。客户端可以完全读取数据库,也可以根本不读取数据库。当然,您可以将过滤后的复制复制到服务器端的特殊用途数据库中。

最新更新