Как ТОЛЬКО иметь возможность отправить запрос из приложения - PullRequest
2 голосов
/ 15 января 2012

Я думаю, это немного сложно объяснить. По сути, у меня есть приложение для Android, которое подключается к веб-приложению. Я хочу, чтобы запросы, которые я делаю из веб-приложения, больше нигде не делались. Кстати, я использую PHP. Так, если, скажем, я делаю запрос из приложения для Android под названием «send_data.php? Foo = bar», я хочу, чтобы этот запрос не работал, если он действительно не отправлен только из приложения для Android. Поэтому я не могу просто зайти в свой браузер и набрать «send_data.php? Foo = bar», и он будет работать.

Я подумал об одном способе, и в моем запросе должно быть секретное значение, например, "pw = 12345", а затем в скрипте PHP есть if($pw = "12345"), но потом я решил, что кто-то может перехватить пакет их телефона и легко получить эту секретную ценность. Есть ли способ, которым я могу это сделать?

Ответы [ 4 ]

1 голос
/ 15 января 2012

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

При этом вы можете пойти на все возможное, чтобы запутать ключ, сохранить его в зашифрованном формате, скрыть, где он находится, и т. Д. Это может быть достаточным сдерживающим фактором для ваших целей.Но важно знать, что это всего лишь игра-оболочка, ключи в приложениях небезопасны, и мотивированный злоумышленник, в конце концов, извлечет ее.

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

0 голосов
/ 15 января 2012

Похоже, вы задаетесь вопросом об аутентификации запроса, а также беспокоитесь о том, что кто-то прослушивает данные во время передачи.Использование https - единственный способ уменьшить все риски.Смотрите принятый ответ на этот вопрос .Ссылка на блог, приведенная в ответе, стоит прочитать.

0 голосов
/ 15 января 2012

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

0 голосов
/ 15 января 2012

Касим,

Один из способов сделать это - использовать запись вместо переменной get, а затем получить доступ к ссылке как к ссылке SSL. Это позволит убедиться, что опубликованная информация зашифрована. Если ты не можешь сделать это, ты можешь сделать, как я. Я зашифровал данные, которые отправляю на телефон на сервере. Он остается зашифрованным на телефоне и дешифруется только при использовании в приложении. Таким образом, не имеет значения, если кто-то прослушивает мою связь и получает данные. Это почти бесполезно. Надеюсь, это поможет.

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