Как правильно защитить мое приложение? - PullRequest
1 голос
/ 14 января 2012

У меня есть приложение, которое создает учетную запись для веб-приложения, которое в основном отправляет и получает SMS-сообщения из Интернета.Вот как это работает (пока не выпущено, ближе к концу первого выпуска функций, которые я запланировал):

Пользователь покупает приложение.Пользователь вводит свое имя, адрес электронной почты и пароль.Учетная запись создается на стороне сервера, и отображается окончательный вид, сообщающий пользователю, где получить доступ к веб-приложению.Открываются фоновые процессы (C2DM и ContentObserver для SMS).

Все идет хорошо.Android-часть этого приложения работает без нареканий, но я боюсь, что люди сделают несколько аккаунтов за одну покупку.Как я мог предотвратить это?Я не знаю, когда дело доходит до этой темы.Прежде всего, когда отображается окончательный вид, пользователь может просто нанести ответный удар, а затем воссоздать другую учетную запись.Как я могу помешать им снова перейти в эту форму?Я думаю, что я могу просто установить SharedPreference, но тогда все, что пользователь должен сделать, чтобы создать другую учетную запись, это удалить приложение, а затем переустановить его, и bam создаст другую учетную запись.

Мне нужен способ, поэтомукак только пользователь регистрируется в первый раз, он никак не может зарегистрироваться снова на этом конкретном телефоне (или конкретной учетной записи Google).Есть ли реальный способ сделать это?Любая помощь приветствуется, я застрял, когда речь заходит об этой теме.

Ответы [ 2 ]

0 голосов
/ 14 января 2012

Поскольку функции идентификации SIM-карты ( getSimSerialNumber ) возвращают ноль на устройствах CDMA, а * ANDROID_ID * считается одинаковым значением на устройствах CDMA; С добавлением планшетов, у которых нет ни одного из них, я настоятельно рекомендую добавить в свою базу данных свой уникальный идентификатор и сопоставить его с учетной записью Google пользователя.

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

Возможно, вы захотите проверить этот пост на предмет идей о создании уникального идентификатора

http://android -developers.blogspot.com / 2011/03 / идентифицирующий-приложение-installations.html

0 голосов
/ 14 января 2012

Я бы сделал проверку на стороне сервера.Каждое устройство имеет уникальный идентификатор.Если вы сохранили это на стороне веб-сервера во время создания учетной записи, вы проверяете, была ли учетная запись уже создана на этом устройстве.Также добавьте такую ​​же проверку для Google ID, на всякий случай.

String android_id = Secure.getString(getBaseContext().getContentResolver(),
                Secure.ANDROID_ID);

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

...