2

本地文档与普通 CouchDB 文档的不同之处在于它们不会被复制,不会出现在任何视图中(包括 _all_docs)并且不受验证功能的约束。只能使用必须知道才能检索的文档 ID 来访问它们。有关详细信息,请参阅http://docs.couchdb.org/en/1.3.x/api/local.html

恶意用户可以在面向公众的 CouchDB 中滥用此功能在服务器上存储任意数据。有趣的是,数据库或服务器管理员甚至无法通过查看日志文件以外的任何其他方式查看这些文档。

所以我想知道是否有任何选项可以禁用 CouchDB 中的本地文档?

4

1 回答 1

4

不,没有办法做到这一点,对不起。不过,您的评论都是正确的,这可能是在 CouchDB 中改进以避免此问题的好方法。随意在https://issues.apache.org/jira/browse/COUCHDB提交错误,人们肯定会考虑它,或者解释为什么它不实用。

另一方面,更实际地,授予某人对您的数据库的写访问权限需要一定程度的信任,即他们不会是恶意的或有很大缺陷的。是的,他们可以偷偷地创建本地文档,但同样地,他们也可以删除数据库中的所有内容,或者用其他普通文档填充它并使服务器崩溃,然后您仍然必须通过并单独删除(甚至是批量删除要求您列出每个文档 ID),或者只是删除整个数据库。

如果您的数据库客户端在此级别上不值得信赖,那么您不应该让他们直接访问您的数据库。在这种情况下,您应该在它们和管理这些交互以控制此类事情的 CouchDB(即具有固定形式和诸如此类的网站)之间放置一些服务。

于 2013-04-18T16:10:53.390 回答