特别是,过滤复制可以用 PouchDB 完成吗?我想确保客户端不能省略过滤器,从而与整个数据库同步。
问问题
1346 次
1 回答
5
没有 CouchDB 复制“协议”。复制过程只是一个客户端连接到两个 CouchDB 端点,从一个端点读取文档,然后将它们写入另一个端点。当然,CouchDB 内置了这样一个客户端(“复制器”);但从概念上讲,它是一个第三方应用程序。
这意味着,您可以从应用程序的安全分析中删除复制。首先考虑普通的 Web 客户端读取和写入您的服务器。把它锁起来。您可能会假设一个假设的对手使用被黑的 Web 浏览器,或者使用自定义 HTTP 客户端(例如,它不遵守跨域策略)。
解决了这个问题后,复制必然会遵循您的安全策略。
换句话说,在 PouchDB 和 CouchDB 之间进行复制:
- 如果您要推送到远程服务器,您的安全工具就是远程
validate_doc_update
功能。 - 如果您从远程服务器拉取,您的安全工具是数据库 _security 对象——特别是
"members"
数组。客户端可以完全读取数据库,也可以根本不读取。当然,您可以对服务器端的特殊用途数据库进行过滤复制。
于 2012-05-22T10:02:27.237 回答