Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 非常规设计文件的couchdb安全性_Security_Couchdb - Fatal编程技术网

Security 非常规设计文件的couchdb安全性

Security 非常规设计文件的couchdb安全性,security,couchdb,Security,Couchdb,我正在为我的应用程序的每个用户创建一个couchdb数据库,在该数据库中,应用程序被授予数据库管理员权限。这样做是为了让应用程序能够同步设计文档——但我不想让我的服务器面临任何风险 用户没有正当理由在我的服务器上运行视图(他们只使用服务器进行双向同步),因此不难筛选出试图查看视图的请求 是否还有其他安全风险或DoS攻击我没有注意到?每个对您的数据库具有读取权限的用户都可以运行view。这不是问题,因为视图索引只生成一次,并以增量方式更新 但是数据库管理员可以创建任何他们喜欢的新视图。视图不能占用

我正在为我的应用程序的每个用户创建一个couchdb数据库,在该数据库中,应用程序被授予数据库管理员权限。这样做是为了让应用程序能够同步设计文档——但我不想让我的服务器面临任何风险

用户没有正当理由在我的服务器上运行视图(他们只使用服务器进行双向同步),因此不难筛选出试图查看视图的请求


是否还有其他安全风险或DoS攻击我没有注意到?

每个对您的数据库具有读取权限的用户都可以运行view。这不是问题,因为视图索引只生成一次,并以增量方式更新

但是数据库管理员可以创建任何他们喜欢的新视图。视图不能占用大量CPU时间,因为CouchDB会超时(默认为5秒)限制它们的执行,但它们可能会占用大量磁盘空间,特别是当视图将发出完整的文档内容时——这可能会使单个索引视图比整个数据库大

此外,数据库管理员可以运行数据库和查看索引压缩—这些操作对于磁盘IO(有时对于CPU)来说非常繁重,尤其是对于大型数据库(100GiBs+)。如果在用户活动的高峰期运行,这些任务可能会显著降低服务器性能(单次压缩可能不会,但多次压缩很容易)

如果您使用的是没有沙盒特性的自定义视图服务器(如Python、Erlang等),情况可能会变得更糟。事实上,它们允许db管理员通过CouchDB在服务器上执行自定义代码。在这种情况下,丢失所有数据库并在服务器上找到远程shell只是可能性的冰山一角


简历:不要把你不信任的人指派给数据库管理员,这样你就安全了。

谢谢!是否有一种方法允许非管理员用户对设计文档进行双向同步。。但要使其在服务器上不生效:/