Насколько безопасна оплата приложений в Android? - PullRequest
1 голос
/ 03 ноября 2011

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

Я решил сохранить купленные предметы в базе данных и добавить в нее некоторые чеки. Тем не менее, есть еще одна проблема: не будет ли возможно просто разобрать приложение, обменяться кодами ответов (например, USER_CANCELED с OK), поэтому каждый раз, когда я открываю диалог и завершаю работу, моя игра думает, что я купил предмет?

До сих пор я пробовал это в своем приложении, однако, поскольку у меня нет опыта работы с baksmali, я не работал на меня. Теоретически, было бы (легко) возможно? И если да, что именно вы должны изменить в smali и какие контрмеры?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 03 ноября 2011

Android имеет рекомендации по безопасности биллинга в приложении doc:

https://developer.android.com/google/play/billing/billing_best_practices.html

Этот вопрос всегда будет появляться постоянно, и ответ на этот вопрос заключается в том, что не существует "реального решения", котороепобедит все пиратство.Тем не менее, существуют различные методы, которые могут смягчить проблему и предотвратить пиратство в больших масштабах.

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

0 голосов
/ 10 октября 2013

Если вы декомпилируете, измените код и снова запакуете его как apk, его необходимо подписать тем же ключом, который вы использовали ранее - иначе вы не сможете совершать покупки в приложении через Play Store.

Доступ к элементам в магазине может получить только приложение, подписанное аналогично тому, которое вы загрузили через консоль.

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

0 голосов
/ 03 ноября 2011

Просто мнение: у меня мало знаний о приложениях для Android, но о сфере безопасности. Вам следует принять решение о том, предотвращать взлом вашего программного обеспечения или нет, или о том, сколько.Более высокая безопасность со временем приведет к более проблемным приложениям и приведет к тому, что ваши настоящие клиенты будут плохо себя чувствовать или украдут свое время (из-за снижения производительности).И вы потратите свое время на защиту своего приложения, а не на то, чтобы сделать его лучше и полезнее.Я советую вам прочитать этот хороший комментарий тоже.«если люди хотят, чтобы ваше приложение было взломано, они будут»

...