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

时间:2011-10-04 08:43:56

标签: session authentication cookies couchdb

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

{
  "from": "auth",
  "to": "../../../_session"
}

给了我:

{"error":"insecure_rewrite_rule","reason":"too many ../.. segments"}

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

由于

PS。我刚刚找到了this post,可以在httpd配置文件上禁​​用secure_rewrites,这似乎有效,但是,我想知道也许可能不是一个好的方法,如果还有其他一些理想的这类问题。

2 个答案:

答案 0 :(得分:6)

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

我们在Iris Couch论坛上对CouchDB rewrites and security进行了很好的讨论。另请参阅我之后关于using Audit CouchDB的帖子。这些是亮点:

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

答案 1 :(得分:0)

如果您使用的是vhost,则vhost根目录下的/_session处理程序可用而没有任何重写规则(默认情况下)。

请参阅[httpd]的{​​{1}}部分:

default.ini