Аутентифицировать связь с бэкэндом из iOS - PullRequest
1 голос
/ 22 сентября 2011

У меня есть бэкэнд, который обрабатывает запросы к базе данных.Мои приложения не общаются напрямую с базой данных по соображениям безопасности.

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

Как для приложений iOS (или любых приложений в целом) лучше всего общаться с бэкэндом?

Ответы [ 3 ]

1 голос
/ 21 марта 2012

В Applicasa каждое приложение имеет свой «пробел», поэтому только ваши приложения общаются с БД (каждая со своим пространством) www.applicasa.com

1 голос
/ 22 сентября 2011

Вы спрашиваете, как приложение, установленное на устройстве iOS, может аутентифицировать себя на вашем сервере.

Как вы идентифицируете своих пользователей?

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

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

0 голосов
/ 30 октября 2013

Вы можете использовать механизм авторизации, такой как OAuth. Или вы можете построить свой собственный. Это может быть так же просто, как иметь секретный токен / ключ. И вы можете сделать его таким же простым или начать делать его более сложным (т. Е. Генерировать хеши с токеном и параметрами, чтобы не отправлять сам токен, а хэш, рассчитанный с токеном и параметрами запроса и т. Д.).

Однако нет способа сохранить в тайне жетоны API. Поскольку злоумышленник может декомпилировать ваше приложение, проанализируйте код и найдите свой ключ API. Вы можете проверить некоторые заголовки http, но подделать заголовки запроса очень просто. Поэтому вы не можете гарантировать, что запросы сделаны с устройства iOS.

Было бы замечательно, если бы Apple предоставила способ сохранить что-то во время процесса установки, которое подписано вашим сертификатом разработчика, или что-то подобное, чтобы вы могли сохранить что-то действительно секретное, которому вы можете доверять на устройстве iOS. Но, в конце концов, кто-то просто перехватит сетевой трафик, чтобы взломать вашу систему авторизации.

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

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