couchdb公共接口通过重写进行身份验证

zan*_*ona 5 authentication cookies session couchdb

我在特定域上设置了一个网站,它通过重写和虚拟主机与我的couchdb url完全分开,我得到了一个点,我需要使用_sessions API添加一些用户身份验证,但我恐怕不能这样做它与重写:

{
  "from": "auth",
  "to": "../../../_session"
}
Run Code Online (Sandbox Code Playgroud)

给我:

{"error":"insecure_rewrite_rule","reason":"too many ../.. segments"}
Run Code Online (Sandbox Code Playgroud)

这是可以接受的,但现在我想知道如何在不暴露couchdb网址的情况下从我的域中获取会话身份验证,而且,会话似乎与域有关,所以如果我通过couchdb.example.com登录它使用mywebsite.com作为公共界面时不起作用?

谢谢

PS.我刚刚发现这篇文章,其中有一个替代方案,禁用secure_rewriteshttpd配置文件,这似乎有效,但是,我想知道也许可能不是一个好方法,如果有其他东西是理想的这种类型的问题.

Jas*_*ith 6

我建议设置secure_rewrites=false,不要担心它.

我们在Iris Couch论坛上对CouchDB重写和安全性进行了很好的讨论.另请参阅我之后关于使用Audit CouchDB的帖子.这些是亮点:

  • secure_rewrites选项不是数据安全的最终来源.充其量,它是多层解决方案中的一个层
  • 最终的安全源是_security数据库中的对象.所以这是你应该集中注意力的地方
  • 审计CouchDB的工具扫描你的沙发上的每一个细节,它会告诉你,如果任何红色标志都存在.它是用Javascript实现的,所以如果你有NodeJS,你可以运行它; 或者只是阅读源代码可以让您了解它的内容.