特别是,可以使用PouchDB进行过滤复制吗?我想确保客户端不能省略过滤器,从而与整个数据库同步。
答案 0 :(得分:5)
没有CouchDB复制“协议”。复制过程只是一个连接到两个CouchDB端点的客户端,从一个端点读取文档,然后将它们写入另一个端点。当然,CouchDB内置了这样一个客户端(“复制器”);但从概念上讲,它是第三方应用程序。
这意味着,您可以从应用程序的安全分析中删除复制。首先考虑正常的Web客户端读取和写入您的服务器。锁定它。您可以假设一个假想的对手使用被黑客入侵的Web浏览器,或使用自定义HTTP客户端(例如,它不尊重跨源策略)。
解决了这个问题后,复制必然会遵循您的安全策略。
换句话说,在PouchDB和CouchDB之间复制:
validate_doc_update
功能。"members"
数组。客户端可以完全读取数据库,也可以根本不读取数据库。当然,您可以在服务器端对特殊用途的数据库进行过滤复制。