安全CouchDB体系结构

安全CouchDB体系结构,couchdb,security,database-replication,Couchdb,Security,Database Replication,我想创建一个使用CouchDB作为分布式数据库的应用程序。每个用户都将使用本地CouchDB副本,这样就可以脱机工作。 每个本地复制副本都将与中心复制副本同步,这不是主复制副本,只是现在更容易使用中心复制副本 考虑到这种设计,如何保护本地和中央数据库 所谓安全,我的意思是,用户在允许读取或写入数据库之前,必须使用用户名和密码进行身份验证 当然,更重要的方面是保护中央数据库的安全,因为任何本地的东西最终都会被黑客攻击,但中央(或远程)数据库应该更安全。 我读到有人建议将CouchDB置于代理之后,

我想创建一个使用CouchDB作为分布式数据库的应用程序。每个用户都将使用本地CouchDB副本,这样就可以脱机工作。 每个本地复制副本都将与中心复制副本同步,这不是主复制副本,只是现在更容易使用中心复制副本

考虑到这种设计,如何保护本地和中央数据库

所谓安全,我的意思是,用户在允许读取或写入数据库之前,必须使用用户名和密码进行身份验证

当然,更重要的方面是保护中央数据库的安全,因为任何本地的东西最终都会被黑客攻击,但中央(或远程)数据库应该更安全。 我读到有人建议将CouchDB置于代理之后,但复制过程如何代表用户进行身份验证

谢谢,,
Ido.

我想我不能给出一些针对智能沙发的建议,因为所有这些都属于一般的安全问题,但以下是它们:

  • 对于初学者,请确保节点之间的通信已加密。CouchDB从1.1开始就在本地支持SSL,因此对于早期版本,您必须将其置于处理SSL的代理(nginx、apache的mod_代理、varnish)或限制VPN访问的代理之后

  • 检查角色和用户权限。不允许任何不需要被允许的事情。需要有效的用户等

  • 确保如果某人经过身份验证,并不意味着你可以信任他。确保严格验证所有数据-自由使用
    validate\u doc\u update
    函数。检查每个人是否都在访问他们真正有权访问的数据。同样,身份验证并不意味着授权


我不认为我能给出一些智能沙发的具体建议,因为所有这些都属于一般安全问题,但以下是它们:

  • 对于初学者,请确保节点之间的通信已加密。CouchDB从1.1开始就在本地支持SSL,因此对于早期版本,您必须将其置于处理SSL的代理(nginx、apache的mod_代理、varnish)或限制VPN访问的代理之后

  • 检查角色和用户权限。不允许任何不需要被允许的事情。需要有效的用户等

  • 确保如果某人经过身份验证,并不意味着你可以信任他。确保严格验证所有数据-自由使用
    validate\u doc\u update
    函数。检查每个人是否都在访问他们真正有权访问的数据。同样,身份验证并不意味着授权


1.1版CouchDB之后的FYI具有本机SSL支持。1.1版CouchDB之后的FYI具有本机SSL支持。