Security 非常规设计文件的couchdb安全性
我正在为我的应用程序的每个用户创建一个couchdb数据库,在该数据库中,应用程序被授予数据库管理员权限。这样做是为了让应用程序能够同步设计文档——但我不想让我的服务器面临任何风险 用户没有正当理由在我的服务器上运行视图(他们只使用服务器进行双向同步),因此不难筛选出试图查看视图的请求Security 非常规设计文件的couchdb安全性,security,couchdb,Security,Couchdb,我正在为我的应用程序的每个用户创建一个couchdb数据库,在该数据库中,应用程序被授予数据库管理员权限。这样做是为了让应用程序能够同步设计文档——但我不想让我的服务器面临任何风险 用户没有正当理由在我的服务器上运行视图(他们只使用服务器进行双向同步),因此不难筛选出试图查看视图的请求 是否还有其他安全风险或DoS攻击我没有注意到?每个对您的数据库具有读取权限的用户都可以运行view。这不是问题,因为视图索引只生成一次,并以增量方式更新 但是数据库管理员可以创建任何他们喜欢的新视图。视图不能占用
是否还有其他安全风险或DoS攻击我没有注意到?每个对您的数据库具有读取权限的用户都可以运行view。这不是问题,因为视图索引只生成一次,并以增量方式更新 但是数据库管理员可以创建任何他们喜欢的新视图。视图不能占用大量CPU时间,因为CouchDB会超时(默认为5秒)限制它们的执行,但它们可能会占用大量磁盘空间,特别是当视图将发出完整的文档内容时——这可能会使单个索引视图比整个数据库大 此外,数据库管理员可以运行数据库和查看索引压缩—这些操作对于磁盘IO(有时对于CPU)来说非常繁重,尤其是对于大型数据库(100GiBs+)。如果在用户活动的高峰期运行,这些任务可能会显著降低服务器性能(单次压缩可能不会,但多次压缩很容易) 如果您使用的是没有沙盒特性的自定义视图服务器(如Python、Erlang等),情况可能会变得更糟。事实上,它们允许db管理员通过CouchDB在服务器上执行自定义代码。在这种情况下,丢失所有数据库并在服务器上找到远程shell只是可能性的冰山一角
简历:不要把你不信任的人指派给数据库管理员,这样你就安全了。谢谢!是否有一种方法允许非管理员用户对设计文档进行双向同步。。但要使其在服务器上不生效:/