По умолчанию ServerManagedPolicy
, которую Google предоставляет в своей библиотеке проверки лицензий , полагается на ответы сервера для определения интервала повторной проверки лицензии. Это приводит к необходимости повторной проверки каждые несколько дней на неограниченный срок. Это не только неприятность для пользователей, но и может стать серьезной проблемой для пользователей, которые длительное время не могут подключиться. (Мы только что получили запрос от пользователя, который ожидает, что будет без подключения к Интернету в течение нескольких недель, что и мотивирует этот вопрос.)
Подводя итог, я ищу алгоритм, который позволит выполнить две вещи:
- резко снизить требования к подключению по сравнению с
ServerManagedPolicy
;
- обеспечивают такой же уровень защиты от -пиратства.
В ответе на этот вопрос предлагаемый алгоритм политики состоит в том, чтобы игнорировать время, указанное в ответе с сервера Google, и вместо этого использовать срок действия ЛИЦЕНЗИИ около месяца с попытками проверки лицензии каждые несколько дней (, чтобы продлить срок действия, если получен ответ LICENSED ).
Хотя этот подход частично решает первую задачу, он по-прежнему требует, чтобы пользователи подключались раз в месяц при использовании приложения, поэтому он не сработает (по крайней мере для одного из )наших пользователей.
Следующий алгоритм достигает первой цели, но я не знаю о второй. Приветствуются любые комментарии, указывающие на недостатки этого алгоритма, или предложения по другому подходу.
- При первом запуске выполните проверку лицензии и настаивайте на ответе LICENSED, прежде чем предоставлять полную функциональность. Получив однажды,установите относительно короткий срок действия (, но больше, чем период возврата, который предоставляет Google Play, в настоящее время 15 минут ). Также зарегистрируйте льготный период на несколько дней сверх этого.
- Приложение начнет проверку снова после истечения срока действия лицензии. Если не удалось подключить (режим полета и т. д. ), он все равно будет работать до истечения льготного периода.
- По истечении льготного периода настаивайте на втором ответе LICENSED, прежде чем разрешить нормальное функционирование приложения.
- После получения второго ответа LICENSED, включите все функции приложения навсегда и никогда больше не проверяйте.
- Если в какой-либо момент получен ответ UNLICENSED, полностью отключите полную функциональность. (Разумеется, пользователь может вернуться к шагу 1, удалив все данные приложения.)
Дополнительные баллы:
- Было предложено отказаться от первой проверки лицензии и дождаться истечения периода возврата, прежде чем выполнять проверку лицензии. Цель настаивания на первом ответе LICENSED состоит в том, чтобы предотвратить эксплойт, когда после сбоя проверки лицензии пользователь просто останавливает процесс приложения, очищает данные приложения и перезапускает приложение. (Приложение приносит пользу, даже если его можно использовать всего 15 минут за раз.)
- Цель настаивания на втором ответе LICENSED состоит в том, чтобы обойти эксплойт buy -run -backup -return -restore.
- Я не спрашиваю, является ли хорошей идеей возврат -проверки лицензии или нет (это то, что Google предлагает вместо своего устаревшего механизма защиты от копирования ). Я также прекрасно понимаю, что ни одна защита от -пиратства не является надежной, и весь механизм лицензирования Google можно обойти (, и в этом случае все вопросы о разработке алгоритма политики не имеют значения ).Суть этого вопроса заключается в относительных рисках (для нас )и преимуществах (для пользователя )вышеуказанного алгоритма по сравнению с другими политиками (. такие как
ServerManagedPolicy
).
задан Machavity 29 March 2019 в 15:26
поделиться