我想在使用MongoDB作为我的主数据库。不过,我的应用程序完全使用JavaScript,并且我想使用REST API,即客户端。REST API MongoDB身份验证
我仍然不明白可以使用哪些安全机制,以便 可以在不向所有 用户透露所有数据的情况下对数据库进行JS调用。
请在这个问题上的意见。
问候, 唐纳德
我想在使用MongoDB作为我的主数据库。不过,我的应用程序完全使用JavaScript,并且我想使用REST API,即客户端。REST API MongoDB身份验证
我仍然不明白可以使用哪些安全机制,以便 可以在不向所有 用户透露所有数据的情况下对数据库进行JS调用。
请在这个问题上的意见。
问候, 唐纳德
首先,就可以进行数据库身份验证,这将使REST接口需要验证,如果从远程计算机连接。
这就是说,暴露你的数据库是一个非常糟糕的主意,就像你建议的那样。在您熟悉的服务器技术(例如node.js)中构建持久性抽象层,并将所有安全约束和身份验证放在那里。优点很多:
为什么它不安全?它与已经带有REST接口的CouchDB有什么不同? – BluePython
REST接口并非不安全(虽然是潜在的性能问题),但将数据库接口(RESTful或其他)直接暴露给客户端几乎总是会带来风险。 –
检出Sleepy.Mongoose,它是MongoDB的REST API接口。我没有尝试过,但它似乎支持标准的MongoDB身份验证。
为什么人们经历所有这些麻烦而不是使用CouchDB,或者为什么MongoDB没有标准的REST API接口?不这样做的好处是什么? – BluePython
MongoLab有一个可以访问客户端的REST API托管的MongoDB数据库,他们甚至可以通过其支持文档中的一些基于jQuery的示例。也就是说,Remon是正确的,因为你在公开你的API密钥时牺牲了任何安全性。
RESTHeart是一个用于MongoDB的Web API。
它提供应用程序级授权和认证。
检查security文档部分。
还有些例如应用程序可在GitHub上:
@Brain,怎么是以任何方式与这个问题有关? AJAX只是一种与其他服务异步对话的方式,与MongoDB REST接口或问题无关。 –