@YanAlexandrov
Чайник со стажем

Подтверждение и отмена привязки лицензионного ключа?

Делаю php приложение. Пользователю выдаётся лицензионный ключ на использование приложения на несколько доменов (предположим 3, не суть важно). Проверка лицензии производится через http запросы.
С подтверждением лицензии проблем нет: при установке приложения делаю http запрос, проверяю ключ, если всё ОК, на принимающем сервере отмечаю, что осталось 2 установки.
При удалении приложения с домена, снова http запрос. На сервере отмечаю: осталось 3 установки. Подайте идею, как проверить, реально ли http запрос при деактивации пришёл из того же источника что и при активации, или он пришёл при ручных манипуляциях.

Пришла идея при активации записывать и IP, и потом проверять, пришёл ли http при деактивации из того же источника или нет. Но не уверен, что это 100% защита.

Дополнил.
Есть мысль, чтобы при активации отправлять какую-то автоматически генерируемую метку. А при деактивации производить http запрос с этой меткой. Вопрос в том, как хранить её так, чтобы пользователь не мог её узнать.
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 2
Adamos
@Adamos
На несколько доменов или на несколько серверов?
Для одного домена у пользователя логично предвидеть как минимум две установки: на боевой сервер и на тестовый. IP тут несколько неуместен...
Ответ написан
@rPman
В общем случае никак (в вашей схеме организации), так как ушлый пользователь может проксировать запросы к вашему серверу лицензий с любого количества установок.

Вы можете попробовать обусицифировать процесс установки и деинсталляции, привязывая ее к каким-нибудь внутренним идентификаторам системы, параметрам реестра и прочее прочее (в этом случае у вас будет по 1 запросу на установку и удаление), но опять таки ушлый пользователь может это отреверсить. системные вызовы отследить и симулировать одинаковые окружения, вам же объясняя что повторные активации - это у него винда слетела, диск помер и прочая лапша на уши.

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

Войдите, чтобы написать ответ

Похожие вопросы