Предотвращение нежелательного доступа к моему веб-сервису

Я закодировал интернет-приложение C# MVC5, и у меня есть веб-служба Web API 2, которая возвращает данные JSON. Я получаю эти данные JSON в приложении для Android.

Как я могу добавить функцию в веб-службу, чтобы только мое приложение для Android могло извлекать данные JSON? Я хочу сделать это, чтобы другие веб-пользователи не могли вбить URL-адрес, а веб-служба не отправляла мои данные нежелательным приложениям и/или пользователям.

Это возможно? Если да, то как мне это сделать?

Заранее спасибо.


person user3736648    schedule 18.08.2014    source источник
comment
Добавить некоторую безопасность, такую ​​как аутентификация? Случайный гугл выдает мне asp.net/web-api/overview/security   -  person Maarten    schedule 18.08.2014


Ответы (3)


У вас есть различные способы добиться этого на самом деле.

Например, вы можете сохранить ключ в своем приложении для Android и использовать отправку этого ключа вместе с запросом к вашему WebAPI. Затем ваш веб-API проверит, действителен ли ключ, и если да, он вернет JSon.

Однако невозможно гарантировать, что никто другой не сможет запросить и получить ваши данные. Например, реконструируя ваше приложение для Android и извлекая ключ, или отслеживая сетевой трафик и находя там ключ.

Вы должны понимать, что нет ничего, что гарантировало бы вам 100% безопасность.

Смотрите это следующим образом:

У вас есть открытая дверь прямо сейчас, вы можете закрыть ее понемногу, но закрыть и запереть невозможно. Всегда будет разрыв. Дом также не может быть защищен от взлома, но вы можете сделать его очень трудным для горниста.

person Complexity    schedule 18.08.2014

Перейдите по этой ссылке веб-API. Я использовал индивидуальную аутентификацию для своего веб-API. Когда вы зарегистрируете пользователя, ответ, который вы получите, - это токен доступа и используйте этот токен доступа в качестве заголовка аутентификации в вашем вызове ajax, если вы используете Jquery ajax для вызова своего веб-API. См. эту структуру авторизации OAuth 2.0. Надеюсь, это поможет вам.

person Rushee    schedule 20.08.2014

Вы ищете что-то подобное? http://httpd.apache.org/docs/2.2/howto/access.html

Если у вас есть другой веб-сервер, должны быть соответствующие средства для его поддержки.

person Sriram    schedule 18.08.2014
comment
Маловероятно, что служба WebAPI размещена в Apache. - person Tom Chantler; 18.08.2014
comment
Почти наверняка нет. Вопрос касается приложения для Android, поэтому, предположительно, оно работает на устройстве конечного пользователя и не имеет предварительно известного IP-адреса. - person ; 18.08.2014