Проверка на сервере и проверка на устройстве - PullRequest
0 голосов
/ 03 января 2019

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

В Руководстве разработчика по Android для In-App-Billing есть "Лучшийпрактика »(см. https://developer.android.com/google/play/billing/billing_best_practices).

В нем говорится: « Настоятельно рекомендуется проверить детали покупки на сервере, которому вы доверяете. [...] Внедрив проверку подписи.Используя логику на сервере, злоумышленникам будет сложно перепроектировать файл APK. "

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

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

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

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

В документе с рекомендациями также говорится: «убедитесь, что orderId является уникальным значением, которое вы ранее не обрабатывали» .Даже это кажется сомнительным для меня.

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

  • пользователь переключил устройства (или потерял свои данные) и восстанавливает покупки или
  • кто-то пытается незаконно получить доступ к платному контенту?

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

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

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