轻量级堆栈中的CouchDB安全性?

轻量级堆栈中的CouchDB安全性?,couchdb,Couchdb,为了更加熟悉CouchDB,我正在做一个爱好者项目。这是我第一次与CouchDB合作。对于这个项目,我的目标是调查是否有可能构建一个只有HTML、CSS、JavaScript、CouchDB和nginx的web应用程序(也就是说,我没有在沙发上托管任何代码,只是数据) 这可能是非常不切实际的,但我想首先探讨一下这个堆栈中的所有选项 目前,我最大的问题是安全问题。假设我在CouchDB中有几个数据库,每个数据库对应一个托管站点。对于本例,我们将关注单个数据库,即单个站点。这个网站上的一些内容应该对

为了更加熟悉CouchDB,我正在做一个爱好者项目。这是我第一次与CouchDB合作。对于这个项目,我的目标是调查是否有可能构建一个只有HTML、CSS、JavaScript、CouchDB和nginx的web应用程序(也就是说,我没有在沙发上托管任何代码,只是数据)

这可能是非常不切实际的,但我想首先探讨一下这个堆栈中的所有选项

目前,我最大的问题是安全问题。假设我在CouchDB中有几个数据库,每个数据库对应一个托管站点。对于本例,我们将关注单个数据库,即单个站点。这个网站上的一些内容应该对每个人都是可用的,甚至是匿名用户;其他东西应该只对具有特定角色的用户可用。我的选择是什么?每个选择的安全性如何

到目前为止,我已经提出了一些想法,这是我计划在周末研究的一个:

  • 将用户和角色添加到
    /{site\u db}/\u security
    • ,这样做将要求
      {site_db}
      中的任何数据请求都来自经过身份验证的用户
  • 添加名为
    anon
    的用户,该用户只有一个角色,即
    anon
  • 当用户第一次访问站点时,我的JS模型将检查当前会话的状态(
    GET/\u session
    )。
    • 如果不存在会话,JS模型将使用
      anon
      帐户进行身份验证
  • 在我的设计文档中定义视图。
    • 任何只对非匿名用户可用的视图都应该检查
      userCtx
      对象上的角色
    • 任何新创建文档的验证都应检查
      userCtx
      ,查看用户角色是否在白名单上

  • 这似乎应该行得通,尽管我忍不住认为这太复杂了,必须有更好的方法。此外,我不知道如何防止
    anon
    用户更新自己的用户文档以添加更多角色。

    如果您不喜欢CouchDB安全模型,可以在反向代理中轻松实现您的安全模型

    这是一个例子,但它似乎是