Как убедиться / определить, что сообщение пришло из определенного приложения, работающего на iPhone / iTouch? - PullRequest
0 голосов
/ 20 апреля 2010

Создание приложения для iPhone OS, которое позволит пользователям анонимно публиковать информацию в веб-приложении (в моем конкретном случае это будет сайт на основе Rails) ... и я хочу убедиться, что я принимаю только сообщения, исходящие из конкретное приложение, работающее на iPhone / iTouch.

Как это лучше всего сделать?

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

Спасибо

Ответы [ 4 ]

0 голосов
/ 20 апреля 2010

Я бы предложил следующий подход.

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

Затем необходимо защитить учетные данные для входа в систему с помощью соответствующей техники. Например. положить его в связку ключей на Iphone.

0 голосов
/ 20 апреля 2010

Лучший способ - реализовать известный шаблон вызова и ответа. Отправьте какое-либо значение (целое число, строка, хэш метки времени) в приложение iPhone / iTouch. Попросите приложение изменить эту информацию известным способом и отправьте обратно для проверки. Затем все, что вам нужно сделать, - это использовать другой алгоритм модификации для каждой платформы, и он проверит, какой тип устройства используется.

ОЧЕНЬ простой пример:

  1. Сервер отправляет 100 с ответом на iPhone.
  2. iPhone добавляет 10 к этому значению и отправляет обратно с запросом.
  3. Сервер обнаружил, что значение было увеличено на 10, и теперь знает, что это было с iPhone.

Затем на ваших клиентах Android добавьте 20, а на другой платформе добавьте 30 и так далее ...

0 голосов
/ 20 апреля 2010

Зашифруйте или подпишите что-нибудь, используя открытый ключ пары ключей, затем расшифруйте или подтвердите это на сервере с помощью закрытого ключа. В конечном итоге все, что можно отправить, может быть продублировано, будь то поддельный заголовок HTML или зашифрованный блок. Приложение должно знать секретное рукопожатие, и любой, кто имеет к нему доступ (и обладает достаточными техническими навыками), может выяснить секретное рукопожатие.

0 голосов
/ 20 апреля 2010

Вы также можете добавить скрытое поле в форму. или в передаваемых данных, если это XML или другой формат

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