2015-07-27 6 views
1

У меня есть API для отдыха, который создается asp.net webservice, и у меня есть приложение android и IOS, которые вызывают api и показывают некоторые данные пользователю.Как обеспечить безопасность api с проверкой подлинности

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

Следует упомянуть, что мое приложение не является базой пользователей, поэтому нет входа и аутентификации, и я не хочу вводить пользователя в силу!

Согласно моему запросу, для этого требуется проверка подлинности запроса (параметры запроса).

Мне нужно, как создать такие параметры запроса и как их проверить? (Performance слишком важно для меня)

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

ответ

0

Вы можете использовать обычную проверку подлинности или любой механизм аутентификации маркера на основе. Итак, при каждом запросе на ваш api получите заголовки аутентификации (токены аутентификации в заголовке HTTP-запроса) и проверьте, разрешено ли клиенту использовать его. Если это не удалось, отправьте необходимый код состояния HTTP. Вам просто нужно убедиться, что приложения, которые вы хотите разрешить для вызова api, используют эти маркеры безопасности в своих заголовках запроса. И вы можете хранить эти учетные данные или маркеры безопасности в памяти или файле или db по своему усмотрению.

+0

И как вы защищаете учетные данные, если они сидят на клиенте? –

+0

Я думаю, что потребитель вашего api - это мобильные приложения. Поэтому в приложении Android или приложении ios учетные данные необходимо использовать для вызова вашего сервиса api. Таким образом, учетные данные, которые не отображаются пользователю приложения, скорее всего настроены внутри приложения. – Manmay

+0

Любые учетные данные внутри приложения на клиенте уязвимы для злоумышленника. Пользователь может не увидеть их, но выделенный атакующий будет. –

0

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

+0

Я тоже. Я хотел бы спросить, могут ли клиентские приложения генерировать что-то вроде OTP в фоновом режиме для связи с серверным приложением? Можем ли мы использовать в этом случае еще несколько аппаратных средств безопасности, таких как HSM? – BNK

+1

@ChungPham Если вы создаете одноразовый блок на клиенте, тогда алгоритм его создания находится на клиенте, и он сидит в памяти клиента - оба доступны для квалифицированного злоумышленника. Я предполагаю, что вы могли бы распространять HSM для клиентов, но в этом случае это означает, что вы отправляете оборудование пользователям Android. Если OP не хочет предоставлять пароли конечным пользователям, я сомневаюсь, что он хочет дать им HSM. :-) –

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