Внутренний сервер для проверки покупки в приложении - PullRequest
0 голосов
/ 06 мая 2019

В документации Google по методу BillingClient queryPurchases говорится следующее:

"Рекомендуется в целях безопасности пройти проверку покупок на вашем бэкэнде (если он у вас есть), вызвав следующий API: https://developers.google.com/android-publisher/api-ref/purchases/products/get"

Вот ссылка:

https://developer.android.com/reference/com/android/billingclient/api/BillingClient.html#queryPurchases(java.lang.String)

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

Мое пониманиезаключается в том, что Google кэширует эти покупки на локальном устройстве и периодически обновляет этот кэш, и именно из этого кеша queryPurchases извлекает покупки из.

Точно, какой тип атаки я бы попытался предотвратить, выполнив внутреннюю проверку этихпокупки?

1 Ответ

0 голосов
/ 22 июня 2019

Google play обрабатывает транзакцию и ведет учет покупки, ваш бэкэнд представляет квитанции о покупках и получает ответ от Google, пользователь не может вставить поддельную запись в биллинговые системы Google, и именно на это полагается ваш бэкэнд Если пользователь действительно приобрел вас за элемент приложения и его кредитная карта была списана Google, то эта запись является надежной, и пользователь никак не сможет ее изменить, даже если он декомпилирует ваше приложение, он не получит ничего, кроме того, что его выставят как злой актер. Хорошо реализованная в биллинге система приложений является водонепроницаемой и чрезвычайно сложной, если не невозможной для игры.

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