Limbajul Python este apreciat pentru accesibilitatea sa, fiind ușor de citit și utilizat într-o varietate largă de aplicații. Această lizibilitate, deși facilitează colaborarea, expune codul la riscul de acces neautorizat și utilizare incorectă. Concurenții sau persoanele rău intenționate ar putea imita algoritmii și logica unică a codului dumneavoastră, dacă nu sunt implementate măsuri de protecție adecvate. Acest lucru poate dăuna integrității software-ului și încrederii utilizatorilor.
VIDEO MUO AL ZILEI
Derulați PENTRU A CONTINUA CU CONȚINUT
Implementarea unor metode de securitate solide, cum ar fi ofuscarea codului și verificarea licenței, vă protejează software-ul de potențiale amenințări. Protejarea scripturilor Python nu este doar o precauție, ci o strategie esențială pentru a asigura confidențialitatea inovațiilor și a menține încrederea clienților într-un mediu digital.
Înțelegerea Pyarmor
Pyarmor este un instrument de linie de comandă destinat protejării și ofuscării scripturilor și pachetelor Python. Acesta transformă codul sursă într-o formă mai greu de înțeles, dar care își menține funcționalitatea. Ofuscarea presupune redenumirea variabilelor, funcțiilor și claselor în nume neinteligibile, eliminarea comentariilor și restructurarea codului. Aceste acțiuni fac codul greu de dezasamblat, manipulat sau copiat.
Pyarmor poate asigura securitatea atât a scripturilor Python individuale, cât și a pachetelor complete, oferind totodată posibilitatea de a adăuga verificări de licență.
Instalarea bibliotecii Pyarmor
Pyarmor este disponibil în Python Package Index (PyPI). Pentru a-l instala, folosiți pip executând comanda următoare:
pip install pyarmor
Nu este obligatoriu să instalați Pyarmor în același folder cu proiectul dumneavoastră. Instalarea poate fi făcută oriunde pe computer, iar orice script Python, indiferent de locație, poate fi securizat.
Totuși, pentru a rula scripturile protejate fără a necesita instalarea Pyarmor pe mașina țintă, este recomandat să-l instalați în directorul proiectului. Aceasta se datorează faptului că scripturile securizate vor include referințe către runtime-ul Pyarmor, care trebuie să fie prezent pentru a permite execuția lor.
Securizarea scripturilor Python individuale
Protejarea scripturilor individuale cu Pyarmor este un proces simplu. Vom folosi ca exemplu un script care adună două numere:
def add_numbers(num1, num2):
result = num1 + num2
print("Suma dintre {} și {} este: {}".format(num1, num2, result))
num1 = float(input("Introduceți primul număr: "))
num2 = float(input("Introduceți al doilea număr: "))
add_numbers(num1, num2)
Utilizați linia de comandă pentru a accesa directorul unde ați instalat Pyarmor. Apoi, pentru a cripta și ofusca scriptul, executați următoarea comandă, înlocuind „main.py” cu numele scriptului dumneavoastră:
pyarmor gen --output dist main.py
După executarea comenzii, Pyarmor va crea un folder nou, numit „dist”, care va conține scriptul securizat.
Deschideți scriptul securizat pentru a-i inspecta conținutul.

Imaginea de mai sus ilustrează rezultatul obținut după ofuscarea și criptarea scriptului simplu de adunare. Acum este imposibil să înțelegeți scopul scriptului doar analizând codul.
Pentru a rula scriptul securizat, deschideți terminalul sau linia de comandă, navigați la folderul „dist” și executați următoarea comandă, înlocuind „main.py” cu numele scriptului:
python dist/main.py
Scriptul ar trebui să funcționeze normal, ca și cum nu ar fi fost ofuscat. Testați cu atenție scriptul pentru a vă asigura că toate funcțiile se comportă conform așteptărilor.
Protejarea pachetelor Python întregi
Pachetele pot conține de la câteva module la sute, în funcție de complexitatea lor. Protejarea fiecărui modul în parte poate fi o sarcină laborioasă. Din fericire, Pyarmor oferă posibilitatea de a proteja un pachet complet, fără a necesita specificarea fiecărui modul separat.
Să presupunem că avem un pachet Python simplu, numit „sample_package”, cu următoarea structură:
sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py
Puteți crea oricâte module aveți nevoie.
Pentru a cripta și ofusca pachetul, deschideți terminalul sau linia de comandă, navigați în directorul unde se află pachetul și executați comanda următoare:
pyarmor gen -O dist -r -i sample_package
Înlocuiți „sample_package” cu numele pachetului dumneavoastră. Această comandă va cripta și ofusca directorul pachetului, iar rezultatul va fi salvat în directorul „dist”. Pachetul protejat poate fi utilizat ca oricare alt pachet Python.
De exemplu, pentru a utiliza pachetul „sample_package”, creați un script nou în directorul „dist”:
from my_package import module1, module2
module1.say_hello()
module2.do_something()
Când executați codul, pachetul ar trebui să funcționeze ca înainte de a fi securizat.
Controlul accesului la script
Este posibil să doriți să restricționați perioada de timp în care un utilizator poate rula scriptul dumneavoastră, de exemplu, în perioada de probă.
Pentru a limita timpul de execuție al scriptului, utilizați următoarea comandă atunci când îl ofuscați:
pyarmor gen -O dist -e 30 main.py
Înlocuiți „30” cu numărul de zile pentru care doriți ca scriptul să fie activ. Alternativ, puteți specifica o dată exactă. După expirarea perioadei, scriptul nu va mai funcționa.
Puteți testa această funcționalitate setând o dată din trecut. Acest lucru ar trebui să cauzeze o eroare la rularea scriptului. Folosiți comanda următoare pentru a ofusca scriptul cu o dată de expirare trecută:
pyarmor gen -O dist -e 2022-01-01 main.py
Apoi rulați scriptul securizat.

Eroarea indică faptul că licența a expirat, deci scriptul nu poate fi executat.
Echilibrarea securității și eficienței
Deși Pyarmor oferă mecanisme solide de ofuscare pentru a îmbunătăți securitatea codului, este important să găsiți un echilibru între măsurile de securitate și menținerea eficienței software-ului. Puteți realiza acest lucru prin:
- Evaluarea necesității ofuscării: Dacă software-ul conține algoritmi proprietari, date sensibile sau o logică unică de afaceri, ofuscarea este foarte utilă. Totuși, pentru scripturile open-source care nu prezintă probleme de proprietate intelectuală, compromisul dintre securitate și performanță înclină mai mult spre eficiență.
- Evaluarea impactului asupra performanței: Ofuscarea introduce o încărcare suplimentară la rulare, datorită operațiilor și transformărilor adiționale aplicate codului. Acest impact este nesemnificativ pentru scripturile mici, dar poate deveni important în proiectele mari. Este esențial să analizați cu atenție implicațiile ofuscării asupra performanței și să efectuați teste pentru a vă asigura că software-ul rămâne eficient și receptiv.
- Efectuarea de actualizări și întreținere regulată: Actualizați periodic codul, licențele și mecanismele de securitate ofuscate pentru a fi cu un pas înaintea vulnerabilităților potențiale. Echilibrați acest lucru cu necesitatea de a minimiza întreruperile pentru utilizatori.
Poate fi spart codul ofuscat?
Spargerea software-ului se referă la actul de a elimina protecțiile împotriva copierii sau de licențiere a unei aplicații, cu scopul de a obține acces neautorizat la funcționalitățile sale fără a plăti. Este important de reținut că ofuscarea software-ului nu îl protejează în totalitate de spargere.
Cu suficientă determinare și resurse, codul ofuscat poate fi spart. De aceea, este esențial să efectuați actualizări și mentenanță regulată pentru a remedia orice lacune potențiale.