Python Django middleware для проверки лицензии. Как избежать взлома кода

Я хотел иметь лицензионный ключ для использования приложения django

Я создаю подписанный файл, используя pub и закрытые ключи

Этот singed файл будет содержать детали лицензии, такие как имя пользователя, дата истечения срока действия, номер версии и т.д.

После покупки программного обеспечения они загружают подписанный файл. Они должны разместить файл в указанном месте

В принципе, у меня будет промежуточное ПО в Django, которое будет читать подписанный файл, и у него также будет pubkey. Используя это, он проверит подписанный документ, и если он пройдет, то проверит срок действия и позволит продолжить

class CheckDate:
    def __init__(self, get_response):
        self.get_response = get_response
        # One-time configuration and initialization.

    def __call__(self, request):
        # Code to be executed for each request before
        # the view (and later middleware) are called.

        response = self.get_response(request)

        # Code to be executed for each request/response after
        # the view is called.

        current_date = datetime.datetime.now()

        pub_key = "key is passed here"
        allowed_date = get from signed document the expiry date 


        if current_date < allowed_date:
            return response
        else:
            #return render(request, 'licence_expired.html')
            return HttpResponse(json.dumps({"message":f"License Expired on {allowed_date}"}),content_type='application/json',status="401")
        return response

Теперь, используя nuitka, я пытаюсь обфусцировать код промежуточного ПО, а также папку проекта, содержащую настройки.

Чтобы никто не мог увидеть, что такое открытый ключ.

Так это позаботится о лицензировании сервера django ?

НЕДОСТАТКИ, КОТОРЫЕ Я ХОЧУ КОНТРОЛИРОВАТЬ

  1. Biggest caveat is code cracking, they can change the settings.py, by removing the middleware which checks for license

Итак, как можно защититься от взлома кода и иметь возможность использовать вышеуказанную систему для лицензирования приложения

  1. redistribution of the key. How to avoid someone not to use the same key. What should i do for this in the middleware

  2. Not allow to install on mutliple pcs. Can install only on one pc at time.

Вернуться на верх