2010-04-11 6 views
1

Чтобы быть в безопасности, что лучше всего, чтобы только мое приложение имело доступ к моему веб-сервису, который размещен на общедоступном сервере? Должен ли я использовать общий ключ или что-то еще?Обеспечьте эксклюзивный доступ к webservice

Мой веб-сервис размещен в Google App Engine, и мое приложение работает на iPhone и iPad.

Если вам нужна дополнительная информация, просто спросите.

Спасибо, Хенрик

+0

Я думаю, что «эксклюзивный доступ» для меня непонятен - только ваш iphone? только ограниченный набор iPhone? только ваше приложение на чей-то iphone? только лицензированные пользователи? «Исключительно» подразумевает «защищенное», т. Е. Вы беспокоитесь о защите конфиденциальных данных или просто пытаетесь удостовериться, что никто не пишет приложение, которое использует ваши веб-службы? –

ответ

2

какой-то аутентификации запрос/ответ будет вашим лучшим выбором, но вы можете использовать что-то же просто, как ключ, который отправляется с каждым запросом. для кого-то, у кого есть пакетный сниффер, может быть довольно легко перепрограммировать эту безопасность, я думаю, что количество времени, которое вы потратите на это, будет относиться к тому, насколько вы действительно заботитесь :)

1

Вы можете запрограммировать приложение только для того, чтобы запросы, которые включают ваш iPhone's unique identier - см. вопрос StackOverflow [Unique identifier for an iPhone app]. Идентификатор все еще можно понюхать, поэтому в зависимости от ваших потребностей вам могут понадобиться методы для борьбы с этим.

2

Если вам требуется, чтобы ваши пользователи приложения iphone вводили логин/пароль, то тривиально добиться того, чего вы хотите. Но я предполагаю, что вы этого не хотите.

Без этого нет способа, чтобы у вас было эксклюзивное доступ к вашим веб-службам. Люди всегда могут обнюхать HTTP-трафик и обманывать его. Люди могут декомпилировать/реконструировать ваше приложение, чтобы выяснить ключ/пароль.

другие дискуссии по StackOverflow - How to restrict access to my web service? и How can I create and use a web service in public but still restrict its use to only my app?

+0

+1 для указания соответствующих/дубликатов сообщений – slugster

1

Ну, я была аналогичная проблема. То, что я понял, не существует 100% -ного решения. Что я сделал, я использовал другой подход. Разумеется, я реализовал OAuth и SSL, а также сделал алгоритм для моего веб-сервиса для изучения поведения моего приложения. Я пытаюсь поместить этот алгоритм в какой-то шаблон, шаблон, чтобы его можно было использовать в большем количестве сценариев. Он все еще находится в разработке, поэтому вот код простого консольного приложения, который будет имитировать этот алгоритм. Надеюсь, это может помочь: https://github.com/vjeftovic/LearningRESTSimulation

Смежные вопросы