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

Bob*_*man 5 security offline couchdb pouchdb

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

Jas*_*ith 5

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

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

解决了这个问题后,复制必然会遵循您的安全策略.

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

  • 如果要送到远程服务器,则安全工具是远程validate_doc_update功能.
  • 如果从远程服务器拔出,则安全工具是数据库_security对象 - 特别是"members"数组.客户端可以完全读取数据库,也可以根本不读取数据库.当然,您可以在服务器端对特殊用途数据库进行过滤复制.