我们在生产中使用了 CouchDB
,主要是在受控环境中构建应用程序。大多数时候,我们使用中间件库直接调用 couchdb/cloudant
,从而避免直接调用(前端 JavaScript 直接调用 CouchDB/Cloudant
)。
出于安全原因,很明显,对于经过身份验证的 CouchDB 数据库:http://{username}:{password}@IPAddress:Port/DB
OR对于 cloudant:https://{username}:{password}@username.cloudant.com/DB
,
如果调用是直接从 JavaScript 发出的,今天浏览器中的开发人员工具可以让人们实现此调用,因此可以完全访问您的数据库。
在中间件中处理附件通常很痛苦。让 cloudant 直接处理附件的缓存和服务到前端是有利的,从而减轻我们的中间件的负担。然而,在 Web 上并且有大量的观众,直接调用我们的 cloudant 环境是很棘手的。
我们首先为所有附件设置一个单独的 cloudant 帐户,这样,好奇的男孩
就不会篡改我们用户的实际元数据或信息。因此,他们唯一可以访问的 cloudant 帐户是附件帐户,因为我们正在对我们的数据库进行直接 JavaScript 调用。
问题:我们如何找到一种方法来隐藏我们的 cloudant 环境的用户名和密码,从而允许我们安全地直接对 cloudant 进行 JavaScript 调用?我们的基础设施完全在云端,所以我们没有代理和其他东西可以使用。我们听说过 Url 缩短服务、CDN 等。但是,我们还没有想出一个真正决定性的解决方案。
最佳答案
尝试使用 _session端点。这将设置 cookie 身份验证。
关于javascript - CouchDB 和 Cloudant 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25638800/