Проблема с безопасностью платежей в приложениях Android

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

  1. Следуйте примеру Google, чтобы добавить в него покупку в приложении.
  2. После оплаты пользователем добавьте логический флаг в приватные SharedPreferences.
  3. Не перепроверяйте, заплатил пользователь или нет в будущем.

Я хотел бы узнать больше о безопасности биллинга в приложении. Мой вопрос:

  1. Это простой взлом (просто загрузите программу и запустите ее) для библиотеки лицензирования Android. Это аналогичная проблема для биллинга в приложении?
  2. Достаточно ли безопасны частные общие настройки? хеширование логической переменной кажется бесполезным?
  3. Легко ли взломать apk-файл, например, просто декомпилировать apk, найти логическую логику в 1>0, т.е. всегда true, а затем перекомпилировать apk?

Я обнаружил, что есть AndroidBillingLibrary для простой реализации, но она устарела. Это хорошая альтернатива?


person manhon    schedule 04.02.2014    source источник


Ответы (1)


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

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

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

person Nikolay Elenkov    schedule 04.02.2014