2013-02-14 2 views
0

Я посылаю HTTP запросы от GAE к MongoLab в виде:Google App Engine безопасности MongoLab

https://api.mongolab.com/api/1/databases/rival_testdb/collections/testCollection?apiKey=someKey 

Если этот запрос был прибыв непосредственно с клиентской стороны, я был бы очень обеспокоен. Но поскольку этот запрос поступает изнутри сервлета в GAE, это проблема безопасности? Как я могу сделать это более безопасным, если это возможно?

Я хотел бы использовать MongoLab, если это возможно, но их API позволяет только поместить ключ API непосредственно в запрашивающий URL. Поэтому я застрял, используя URL-адрес, подобный приведенному выше для всех запросов API.

ответ

3

До тех пор, пока вы можете защитить ключ API на сервере, вам должно быть хорошо. Вам не нужно беспокоиться о том, что его обнюхивают в сети, поскольку все коммуникации превышают HTTPS, тем самым шифруя строку запроса и apiKey вместе с ней.

-Будет

1

Это актуальная проблема для большинства общественных услуг.

Специально для MongoLab эта дискуссия присутствует здесь: https://support.mongolab.com/entries/20269612-REST-api-permissions-and-security-best-practice, и это не похоже, что дополнения безопасности, о которых они говорят, были опубликованы публично.

Проверьте ссылку.

Сказав, я предполагаю, что единственный способ, которым вы обращаетесь к API Mongolab, находится в вашем приложении GAE? Это по крайней мере затрудняет для кого-либо вынюхать URL-адрес из вашего приложения.

Хорошим решением для MongoLab является включение HTTP-заголовка до того, как вы сделаете вызов REST. Здесь вы найдете идентификатор, который определяет, что это ваше приложение GAE. И тогда MongoLab должен сделать чек для этого, прежде чем разрешить вызов выполнять свою работу.

+0

да, я доступ к API MongaLab изнутри GAE, и GAE обеспечивается с помощью проверки подлинности пользователя. Просто кажется, что кто-то может «вынюхать» URL-адрес каким-то образом .... – Justin

+0

Я согласен с комментарием Уилла выше. – Romin