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 ?
НЕДОСТАТКИ, КОТОРЫЕ Я ХОЧУ КОНТРОЛИРОВАТЬ
- Biggest caveat is code cracking, they can change the settings.py, by removing the middleware which checks for license
Итак, как можно защититься от взлома кода и иметь возможность использовать вышеуказанную систему для лицензирования приложения
redistribution of the key. How to avoid someone not to use the same key. What should i do for this in the middleware
Not allow to install on mutliple pcs. Can install only on one pc at time.