2016-09-29 1 views
3

Я разрабатываю приложение для Android, и планирую выпустить эту сборку в «Open Beta» на Google Play Store.Безопасность приложения для Android

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

В настоящее время я могу думать о двух подходах к этой логике:

  1. Получить текущую дату с устройства (используя Android кода, чтобы получить время системы)

    Проблемы: Пользователь может изменить дату устройства для взлома системы безопасности

  2. Использовать сервер времени для проверки валюты т дата

    Issue: Мое приложение не требуется подключение к Интернету и, следовательно, это будет плохой пользовательский опыт, если я прошу для подключения к Интернету в начале приложения

У меня есть следующие вопросы:

  1. что альтернативный подход (другие, то проверка даты) могут быть использованы для того, чтобы приложение не будет работать после даты дд/мм/гггг?
  2. Как определить, что пользователь изменил дату устройства вручную?
  3. Другие подходы к поиску текущей даты, даже если устройство отключено?

EDIT: бета билд имеет все функции премиум бесплатно и, следовательно, я не хочу, бета-билд работать после даты ДД/ММ/ГГГГ.

НОВЫЙ ВОПРОС:

Я реализовал код, чтобы проверить реальную дату, используя сервер времени на старте приложения. Какие возможные хаки могут быть сделаны пользователями для доступа к приложению после даты dd/MM/YYYY?

Заранее спасибо.

+0

Одна альтернатива, которую вы можете придумать, - это то, что приложение допускается запускать в бета-версии. В любом случае, может ли его дата/время пользователь всегда очищать кеш приложения или backdate. Дата проверки в Интернете будет лучшей ставкой для предотвращения злоупотребления –

+0

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

+0

Благодарим вас за комментарии. Мы можем выполнять проверку даты в фоновом режиме, но поскольку приложение может работать в автономном режиме, многие устройства пользователя могут быть в автономном режиме. –

ответ

0

Новая модель разрешений включает в себя «Интернет» по умолчанию (вам больше не нужно запрашивать ее).

+1

Благодарим за отзыв. Я не беспокоюсь о разрешении на доступ к Интернету, но поскольку приложение может работать в автономном режиме, многие устройства пользователей могут находиться в автономном режиме. –

1

Согласен, что вы не хотите, чтобы устройство зависело от Интернета. Однако в какой-то момент устройство будет в сети (человек никогда не покинет свое устройство в автономном режиме с момента установки вашего приложения). В этот момент вы проверяете отметку времени и продолжаете оттуда. Вы можете отключить приложение или выполнить какое-либо действие. Многие приложения демонстрируют это поведение, чтобы запускать действие тогда и только тогда, когда сеть подключена. Помимо часов в сети и устройства, единственным окончательным решением, которое вы имеете, является запуск фонового таймера с момента установки приложения.Удачи

-1

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

+0

А как насчет того, изменилась ли дата, прежде чем она превысит срок продления? – Beloo

+0

Beloo Вы можете сохранить дату установки и подсчитать дни Когда приложение работает, когда оно достигает желаемого номера, ограничьте доступ. Но на самом деле, я не думаю, что люди меняют дату до истечения этого срока. Однако ничто не является надежным, все может прыгать. – Krowne

+0

Почему бы и нет. Предположим, вы хотите обмануть и продолжить подписку. Поэтому, если логика подписки основана только на местном времени, можно будет продолжить такую ​​подписку навсегда – Beloo

0

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

Смежные вопросы