Я извлекаю данные с внешнего сервера для использования с моим приложением для Android. Я хотел бы, чтобы эти данные были доступны только с моим приложением. Я использую стандартное http-соединение для получения данных с сервера apache/php в формате json. Я также отправляю некоторые параметры на сервер для получения соответствующих данных. Теперь, что я планирую сделать, это:Проверьте, есть ли HTTP-запрос из моего приложения для Android.
- Отправить на Params
- отправить что-то вроде md5 ("someSecretPhrase" + Params).
- Проверьте правильность секретной фразы на стороне сервера.
Теперь вопрос заключается в безопасном подходе к обратному проектированию? На данный момент я не могу придумать никакой другой возможности получить эти данные. Но если кто-то сможет декомпилировать мой apk, он также сможет получить эту «someSecretPhrase» (довольно сложно сделать на стороне сервера), а затем получить доступ к серверу, не так ли? Это реальная угроза? Есть ли еще одна возможность аутентификации моего приложения сервером?
Я смотрел, например, на форумах. Identify whether HTTP requests from Android App or not? and then respond appropriately, но они не объясняют проблему декомпиляции.
. Я начинаю с совместного хостинга, поэтому для меня не может быть другой архитектуры на сервере. Эти данные не являются уязвимыми (номера кредитных карт клиентов), но для его сбора потребуется много работы (и они будут собираться непрерывно), поэтому было бы очень плохо, если бы кто-то мог просто скопировать мою идею и использовать данные. .. –
Ну, если ваш сервер отвечает некоторыми данными, вы должны считать его общедоступным. Помимо декомпиляции приложений и подделок, он (злоумышленник) может просто использовать данные прокси и дампа, которые вы отправляете в свое законное приложение. –
Итак, если я правильно понял вас, единственная возможность сделать это безопасно - это использовать зашифрованное соединение между сервером и приложением. Https будет нормально? Я понимаю, что это не так просто в использовании. Но каковы другие недостатки? Это значительно медленнее, не так ли? Я просто пытаюсь выяснить, стоит ли безопасность этих данных. –