【问题标题】:couchdb public interface authentication through rewritescouchdb 通过重写的公共接口身份验证
【发布时间】:2011-11-30 12:16:52
【问题描述】:

我在特定域上设置了一个网站,该网站通过重写和虚拟主机与我的 couchdb url 完全分离,我到了需要使用 _sessions API 添加一些用户身份验证的地步,但恐怕我可以不要重写:

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

给我:

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

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

谢谢

PS。我刚刚发现this post 可以通过在httpd 配置文件上禁​​用secure_rewrites 来替代,这似乎可行,不过,我想知道可能不是一个好的方法,如果还有其他适合此类问题的方法。

【问题讨论】:

    标签: session authentication cookies couchdb


    【解决方案1】:

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

    我们在 Iris Couch 论坛中就CouchDB rewrites and security 进行了精彩的讨论。另请参阅我稍后关于using Audit CouchDB 的帖子。这些是亮点:

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

    【讨论】:

    • 哇,非常感谢 Jason,有这样的反馈感觉真好。你很感激。那我肯定会用它,另外,恭喜audit_couchdb,我刚刚安装在这里,它真的很有用。现在它将成为我开发过程的一部分。 :) 干杯
    • 通过 curl 进行设置: curl -XPUT "$couch/_config/httpd/secure_rewrites" -d '"false"'
    【解决方案2】:

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

    参见default.ini[httpd]部分:

    vhost_global_handlers = _utils, _uuids, _session, _oauth, _users
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-21
      • 2018-05-06
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多