Jas*_*ith 23
是的,CouchDB可以防止未经授权的读取.不幸的是,它稍微不那么简单.
想象一下秘密拍卖应用程序.您出价20美元,我出价10美元; 沙发文件中的每个出价.Couch让我们阅读我们自己的投标文件,但没有其他人.但是,有一个map-reduce视图显示平均值.我加载视图并看到平均值是15美元,因此我得出结论,您的出价是20美元,我已经破坏了安全策略.查看输出可能会泄露部分或全部文档的信息.在文档级强制执行安全性是不可行的.这就是读访问是在数据库级别的原因.
我知道,它很糟糕.但这是唯一正确,可扩展的答案.
这是Couch理念创建许多数据库的部分原因 - 甚至每个用户一个(或更多!).对数据库的读取权限readers在数据库_security对象的值中设置.(注意,字段阅读器已重命名为 CouchDB主干中的成员,因为它还指定了谁可以写入数据库.)
该技术的工作方式如下:
_security对象.validate_doc_update.分享代码.)?filter=my_filter_function.当然,这完全适用于纯Couch应用程序,用户可以直接访问Couch.如果您有一个中间层(MVC控制器,或只是一个反向HTTP代理),那么您可以在用户和沙发之间强制执行策略.但要小心.例如,_show函数或_rewrite规则可能允许用户加载视图或文档,尽管您的策略.
祝好运!
| 归档时间: |
|
| 查看次数: |
3091 次 |
| 最近记录: |