我将以以下形式从GAE向MongoLab发送HTTP请求:
https://api.mongolab.com/api/1/databases/rival_testdb/collections/testCollection?apiKey=someKey
如果此请求直接来自客户端,我会非常担心。但由于此请求来自GAE中的servlet,这是一个安全问题吗?如果可能,我怎么能让这更安全?
我想尽可能使用MongoLab,但他们的API只允许将API密钥直接放在请求URL中。所以我很难使用上面提到的所有API请求的URL。
答案 0 :(得分:3)
只要您可以在服务器上保护API密钥,您应该是好的。您不必担心它会被网络嗅探,因为所有通信都通过HTTPS进行,从而加密请求字符串和apiKey以及它。
- 将会
答案 1 :(得分:1)
这是大多数公共服务的有效关注点。
特别是对于MongoLab,此讨论存在于此处:https://support.mongolab.com/entries/20269612-REST-api-permissions-and-security-best-practice并且看起来他们所谈论的安全性添加内容并未公开发布。
请查看链接。
话虽如此,我假设您访问Mongolab API的唯一方法是从GAE应用程序中获取?这至少使得任何人都难以从你的应用程序中嗅出网址。
一个很好的解决方案是MongoLab允许在进行REST调用之前插入HTTP头。在这里,您可以使用一些ID来识别它是您的GAE应用程序。然后MongoLab应该在允许调用之前对其进行检查。