Предельный / безопасный сервлет Google Appengine (поставщик услуг REST) для использования конкретным мобильным приложением

1

Какое наилучшее решение для обеспечения поставщика услуг REST (предположим, что сервлет java работает в Google appengine), разрешая запросы только с iOS или Android-устройства из определенного приложения?

Предположим, у меня есть сервлет, запущенный в Google appengine, который выполняет некоторую обработку и отвечает на запрос GET с некоторыми данными JSON. И я хочу ограничить этот доступ к моему приложению, которое работает на Android и iOS.

Мои текущие решения:

  • Используйте if(tokenValue == request.getHeader(tokenKey)) на appengine servlet. А также response.addHeader(tokenKey, tokenValue) в мобильных приложениях, код. Так что в основном только мое приложение знайте ключ маркера.
  • Используйте HTTP (ы) для вышеуказанного решения, appengine поддерживает это
  • Используйте oAuth - но мне нужно, чтобы пользователь sign- подключался к некоторому провайдеру oAuth из приложения, что усложняет приложение

Предложите другие полезные подходы к решению этой проблемы. Предположим, что этот сервлет обслуживает только запросы GET и, возможно, использует Restlet или Jackson

Теги:
security
google-app-engine
appcelerator-mobile

2 ответа

0

Как использовать SSL-сертификат клиента? Я не пробовал это, но я это рассматриваю. Здесь страница, описывающая подход, с некоторым примером кода: http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html

  • 1
    К сожалению, Google App Engine не поддерживает клиентские сертификаты. На этом они тоже прячутся - единственное упоминание здесь косое: code.google.com/appengine/docs/java/config/… («App Engine не поддерживает настраиваемые роли безопасности (<security-role>») или альтернативные механизмы аутентификации (<login-config>) в дескрипторе развертывания. "
0

Только 3 будут подходящим решением, если безопасность важна для вас. Это связано с тем, что любой, кто использует приложение, может перехватить трафик и просто воспроизвести значения против вашего веб-сервиса. SSL предлагает некоторую защиту, но хороший злоумышленник может решить, как захватить данные, если они управляют устройством. С помощью OAuth урон, наносимый злоумышленником, ограничен одним пользователем (если они не являются администратором приложения).

  • 0
    Ну, безопасность не совсем главная проблема. Я просто не хочу, чтобы другие пользователи использовали мой REST-сервис. Итак, как бы я внедрил решение № 3 без аутентификации пользователя iphone или android для провайдера oAuth?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню