Jūs, iespējams, nevēlaties, lai jūsu svarīgos Python skriptus apgrieztā inženierija veic ļaunprātīgi dalībnieki. Lūk, kā jūs varat to aizsargāt.
Python ir labi lasāms un plaši izmantots. Lai gan šī lasāmība veicina sadarbību, tā palielina nesankcionētas piekļuves un ļaunprātīgas izmantošanas risku. Jūsu konkurenti vai ļaunprātīgi dalībnieki var atkārtot jūsu algoritmus un patentēto loģiku bez pienācīgiem aizsardzības pasākumiem. Tas negatīvi ietekmēs jūsu programmatūras integritāti un lietotāju uzticību.
Spēcīgu drošības pasākumu ieviešana, piemēram, apmulsināšana un licences pārbaude, pasargā jūsu programmatūru pret iespējamiem draudiem. Python skriptu aizsardzība nav tikai prakse; tā ir būtiska stratēģija, lai nodrošinātu jūsu inovāciju konfidencialitāti un saglabātu jūsu lietotāju uzticību digitālajai ainavai.
Izpratne par Pyarmor
Pyarmor ir komandrindas bibliotēka. Tas palīdz aizsargāt un aptumšot Python skriptus un pakotnes. Tas pārveido sākotnējo Python kodu formā, kuru ir grūtāk saprast, vienlaikus saglabājot tā funkcionalitāti. Aptumšošanas procesā mainīgie, funkcijas un klases tiek pārdēvētas par neaprakstošiem nosaukumiem. Tas arī noņem komentārus un pārstrukturē kodu. Tas apgrūtina koda pārveidošanu, iejaukšanos vai kopēšanu.
Pyarmor var nodrošināt atsevišķus Python skriptus un visas pakotnes un pat pievienot jūsu kodam licences verifikāciju.
Pyarmor bibliotēkas instalēšana
Pyarmor ir iekļauts Python pakotņu indeksā (PyPI). Lai to instalētu, izmantojiet pip izpildot šādu komandu:
pip install pyarmor
Pyarmor nav obligāti jāinstalē tajā pašā direktorijā, kurā atrodas jūsu projekts. Varat to instalēt jebkur savā datorā un nodrošināt jebkuru Python skriptu no jebkura direktorija.
Tomēr, ja vēlaties palaist nodrošinātos skriptus, neinstalējot Pyarmor mērķa mašīnā, jums tas jāinstalē tajā pašā direktorijā, kurā atrodas jūsu projekts. Tas ir tāpēc, ka nodrošinātajos skriptos būs atsauces uz Pyarmor izpildlaiku, kam būs jābūt klāt, lai palaistu skriptus.
Atsevišķu Python skriptu nodrošināšana
Atsevišķu skriptu nodrošināšana, izmantojot Pyarmor, ir vienkārša. Tālāk sniegtais skripts, kas pievieno divus skaitļus, kalpos kā piemērs.
defadd_numbers(num1, num2):
result = num1 + num2
print("The sum of {} and {} is: {}".format(num1, num2, result))
# Example usage
num1 = float(input("Enter the first number: "))
num2 = float(input("Enter the second number: "))
add_numbers(num1, num2)
Izmantojiet komandrindu, lai pārvietotos uz direktoriju, kurā instalējāt Pyarmor. Pēc tam palaidiet šo komandu, lai šifrētu un aptumšotu skriptu. Aizvietot galvenais.py ar jūsu skripta nosaukumu.
pyarmor gen --output dist main.py
Pēc komandas palaišanas Pyarmor izveido jaunu mapi ar nosaukumu dist. Tā iekšpusē atrodas jūsu nodrošinātais skripts.
Atveriet aizsargāto skriptu, lai redzētu tā saturu.
Iepriekš redzamajā ekrānuzņēmumā ir parādīta izvade pēc tam, kad Pyarmor aptumšo un šifrē vienkāršo pievienošanas skriptu. Tagad jūs nevarat saprast, ko skripts dara, tikai skatoties uz to.
Lai palaistu aizsargāto skriptu, atveriet savu termināli vai komandu uzvedni un dodieties uz vietu, kurā atrodas dist direktoriju. Pēc tam izmantojiet šo komandu, lai palaistu skriptu:
python dist/main.py
Aizvietot galvenais.py ar jūsu skripta nosaukumu. Skriptam ir jādarbojas tā, kā tas darbotos bez neskaidrības. Rūpīgi pārbaudiet to, lai pārliecinātos, ka visas funkcijas darbojas, kā paredzēts.
Visu Python pakotņu aizsardzība
Pakas var saturēt dažus moduļus vai simtiem moduļu atkarībā no to mērķa. Katra moduļa aizsardzība atsevišķi var būt nogurdinoša. Par laimi Pyarmor ir iespēja nodrošināt visu paketi, nenorādot katru moduli atsevišķi.
Pieņemsim, ka jums ir vienkārša Python pakotne ar nosaukumu parauga_paka ar šādu struktūru:
sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py
Jūs varat izveidojiet tik daudz moduļu, cik vēlaties.
Lai šifrētu un aptumšotu pakotni, atveriet termināli vai komandu uzvedni un pārejiet uz direktoriju, kurā atrodas jūsu pakotne. Pēc tam palaidiet šādu komandu:
pyarmor gen -O dist -r -i sample_package
Aizvietot parauga_paka ar jūsu iepakojuma nosaukumu. Šī komanda šifrēs un apmulsinās jūsu pakotņu direktoriju un saglabās aizsargāto izvadi dist direktoriju. Izmantojiet aizsargāto pakotni tāpat kā jebkurai citai Python pakotnei.
Piemēram. Lai izmantotu iepriekš minēto parauga pakotni, izveidojiet jaunu skriptu dist direktorijs:
from my_package import module1, module2
module1.say_hello()
module2.do_something()
Kad palaižat kodu, pakotnei jādarbojas tāpat kā pirms tās nodrošināšanas.
Piekļuves jūsu skriptam kontrole
Iespējams, vēlēsities ierobežot laiku, kad lietotājs palaiž jūsu skriptu. Piemēram, pārbaudes laikā.
Lai ierobežotu skripta izpildes laiku, skripta aptumšošanas laikā izmantojiet šo komandu.
pyarmor gen -O dist -e 30 main.py
Aizvietot 30 ar dienu skaitu, kuru vēlaties, lai skripts būtu aktīvs. Varat arī to aizstāt ar precīzu datumu. Kad dienas būs beigušās, skripta derīguma termiņš beigsies.
Varat pārbaudīt šo funkcionalitāti, iestatot pagātnes datumu. Tam vajadzētu likt skripta palaišanai radīt kļūdu. Izmantojiet šo komandu, lai aptumšotu skriptu ar derīguma termiņu:
pyarmor gen -O dist -e 2022-01-01 main.py
Pēc tam palaidiet drošo skriptu.
Kļūda parāda, ka licences atslēgai ir beidzies derīguma termiņš, tāpēc skriptu nevar palaist.
Drošības un efektivitātes līdzsvarošana
Lai gan Pyarmor piedāvā stabilus apmulsināšanas mehānismus, lai uzlabotu jūsu koda drošību, tas tā ir svarīgi līdzsvarot starp drošības pasākumiem un jūsu efektivitātes un veiktspējas uzturēšanu programmatūra. To var sasniegt, veicot tālāk norādītās darbības.
- Apmulsināšanas nepieciešamības izvērtēšana: ja jūsu programmatūra ietver patentētus algoritmus, sensitīvus datus vai unikālu biznesa loģiku, apmulsināšana ir ļoti izdevīga. Tomēr atklātā pirmkoda skriptiem ar minimālām intelektuālā īpašuma problēmām kompromiss starp drošību un veiktspēju ir vairāk vērsts uz efektivitāti.
- Veiktspējas ietekmes novērtēšana: Obfuscation ievieš papildu izpildlaika pieskaitāmās izmaksas kodam lietoto papildu darbību un transformāciju dēļ. Šī ietekme ir niecīga maziem skriptiem, bet kļūst pamanāmāka lielākiem projektiem. Jums rūpīgi jānovērtē apmulsināšanas ietekme uz veiktspēju un jāveic testēšana, lai nodrošinātu, ka programmatūra joprojām ir atsaucīga un efektīva.
- Regulāras atjaunināšanas un apkopes veikšana: regulāri atjauniniet savu apslēpto kodu, licences un drošības mehānismus, lai izvairītos no iespējamām ievainojamībām. Līdzsvarojiet to ar nepieciešamību pēc iespējas samazināt traucējumus lietotājiem.
Vai kāds var uzlauzt apslēpto kodu?
Programmatūras uzlaušana attiecas uz lietojumprogrammas kopēšanas aizsardzības vai licencēšanas mehānismu noņemšanu. Lai iegūtu nesankcionētu piekļuvi tās pilnai funkcionalitātei, par to nemaksājot. Ir svarīgi atzīmēt, ka programmatūras apmulsināšana to pilnībā nepasargā no krekeriem.
Ar pietiekamu apņēmību un resursiem apmulsušo kodu var uzlauzt. Šī iemesla dēļ jums jācenšas veikt regulārus atjauninājumus un apkopi, lai aizlāpītu visas iespējamās nepilnības.