Android绕过CouchDB身份验证

Android绕过CouchDB身份验证,android,couchdb,Android,Couchdb,我使用CouchDB对我的应用程序的用户进行身份验证,这实际上只是CouchDB数据库的前端,所以我使用API对用户进行身份验证,从逻辑上来说,这段代码 httpget(http://wrongusername:wrongpassword@mycouch.com:5984) //not my actual code 你应该带着答复回来 {"error":"unauthorized","reason":"Name or password is incorrect."} 就像我卷曲同一个URL一

我使用CouchDB对我的应用程序的用户进行身份验证,这实际上只是CouchDB数据库的前端,所以我使用API对用户进行身份验证,从逻辑上来说,这段代码

httpget(http://wrongusername:wrongpassword@mycouch.com:5984) //not my actual code
你应该带着答复回来

{"error":"unauthorized","reason":"Name or password is incorrect."}
就像我卷曲同一个URL一样。但是,不管我输入什么作为用户名和密码,它都会返回

{"couchdb":"Welcome","version":"1.2.0"}

我知道我没有以某种方式在代码中存储有效的URI或响应,因为我更改了HttpGET的参数以返回_all_docs,并且它返回了所有文档,这是普通用户无法做到的。我没有修改任何配置文件,登录名也没有存储在数据库中的任何位置

Couchdb使用会话cookie进行身份验证,也许您的http客户端以前授权过Couchdb并保留cookie


我可以想到的另一件事是:除非您将require\u valid\u user设置为true,否则couchdb只会限制对单个数据库的访问,这将解释/

上的欢迎消息。您确定要访问的couchdb实例与您为用户设置的实例相同吗?客户端,甚至不是Android,都有绕过身份验证的方法。

CouchDB可以很好地使用基本身份验证。是的,我确实检查了这个我绝对肯定它是同一个实例,我是的,我意识到它不应该绕过身份验证,因此这个问题CouchDB实际上使用了错误的凭据,即使没有设置用户,因此,如果没有严重的错误配置,或者不管您认为什么,您使用的密码都是正确的:@lehnhardt好的,让我们假设它严重的错误配置我可能会犯什么错误?这是如何发生的?例如,更改身份验证\u处理程序配置设置,或使用任何未正确测试的自定义身份验证处理程序。在命令行上执行此操作时,您会得到什么:curlhttp://user:pass@主持人?填写user&pass,然后使用错误的密码url看起来格式不正确。5984是couchdb的标准端口。使用上面的url,您可以在80端口上运行的couchdb上找到一个名为5984的数据库。@skiqh这是一个输入错误,我修复了它