Можда не желите да ваше кључне Питхон скрипте буду обрнути инжењеринг од стране злонамерних актера. Ево како га можете заштитити.
Питхон је веома читљив и има широку употребу. Иако ова читљивост подстиче сарадњу, повећава ризик од неовлашћеног приступа и злоупотребе. Ваши конкуренти или злонамерни актери могу реплицирати ваше алгоритме и власничку логику без одговарајућих мера заштите. Ово ће негативно утицати на интегритет вашег софтвера и поверење ваших корисника.
Примена робусних безбедносних мера, као што су прикривање и верификација лиценце, ојачава ваш софтвер од потенцијалних претњи. Заштита Питхон скрипти није само пракса; то је критична стратегија за осигурање поверљивости ваших иновација и одржавање поверења ваших корисника у дигитални пејзаж.
Разумевање Пиармор-а
Пиармор је библиотека командне линије. Помаже у заштити и прикривању Питхон скрипти и пакета. Он трансформише оригинални Питхон код у облик који је теже разумети, а да притом задржи његову функционалност. Процес замагљивања преименује променљиве, функције и класе у неописна имена. Такође уклања коментаре и реструктурира код. Ово чини код тешким за реверзни инжењеринг, манипулисање или копирање.
Пиармор може да обезбеди појединачне Питхон скрипте и читаве пакете, па чак и да дода верификацију лиценце вашем коду.
Инсталирање Пиармор библиотеке
Пиармор је наведен на Питхон индексу пакета (ПиПИ). Користите пип да га инсталирате покретањем следеће команде:
pip install pyarmor
Није обавезно да инсталирате Пиармор у исти директоријум у коме се налази ваш пројекат. Можете га инсталирати било где на рачунару и моћи ћете да обезбедите било коју Питхон скрипту из било ког директоријума.
Међутим, ако желите да покренете заштићене скрипте без потребе да инсталирате Пиармор на циљној машини, потребно је да га инсталирате у истом директоријуму у коме се налази ваш пројекат. То је зато што ће обезбеђене скрипте садржати референце на Пиармор рунтиме, које ће морати да буду присутне да би се скрипте покренуле.
Обезбеђивање појединачних Питхон скрипти
Обезбеђивање појединачних скрипти помоћу Пиармор-а је једноставно. Следећа скрипта која додаје два броја послужиће као пример.
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)
Користите командну линију за навигацију у директоријум у који сте инсталирали Пиармор. Затим покрените следећу команду да бисте шифровали и замаглили своју скрипту. Заменити маин.пи са именом вашег сценарија.
pyarmor gen --output dist main.py
Након што покрене команду, Пиармор креира нову фасциклу под називом дист. Унутар њега се налази ваша заштићена скрипта.
Отворите заштићену скрипту да бисте видели њен садржај.
Горњи снимак екрана приказује излаз након што Пиармор замагљује и шифрира једноставну скрипту за додавање. Сада не можете рећи шта скрипта ради само гледајући га.
Да бисте покренули заштићену скрипту, отворите терминал или командну линију и идите до локације која садржи дист именик. Затим користите следећу команду да покренете скрипту:
python dist/main.py
Заменити маин.пи са именом вашег сценарија. Скрипта треба да ради као што би радила без замућивања. Тестирајте га темељно да бисте били сигурни да све функције раде како очекујете.
Заштита читавих Питхон пакета
Пакети могу да садрже неколико модула или стотине модула у зависности од њихове намене. Заштита сваког модула засебно може бити заморна. Срећом, Пиармор има могућност да обезбеди цео пакет без потребе да наведете сваки модул посебно.
Претпоставимо да имате једноставан Питхон пакет под називом узорак_пакета са следећом структуром:
sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py
Можете креирајте онолико модула колико желите.
Да бисте шифровали и сакрили пакет, отворите терминал или командну линију и идите до директоријума у коме се налази ваш пакет. Затим покрените следећу команду:
pyarmor gen -O dist -r -i sample_package
Заменити узорак_пакета са именом вашег пакета. Ова команда ће шифровати и сакрити ваш директоријум пакета и сачувати заштићени излаз у дист именик. Користите заштићени пакет као и за било који други Питхон пакет.
На пример. Да бисте користили горњи пример пакета, креирајте нову скрипту унутар дист директоријум:
from my_package import module1, module2
module1.say_hello()
module2.do_something()
Када покренете код, пакет би требало да функционише као што би био пре него што га обезбедите.
Контролисање приступа вашој скрипти
Можда ћете желети да ограничите време које корисник покреће вашу скрипту. На пример, током пробног периода.
Да бисте ограничили време које скрипта покреће, користите следећу команду када прикривате своју скрипту.
pyarmor gen -O dist -e 30 main.py
Заменити 30 са бројем дана за које бисте желели да скрипта буде активна. Можете га заменити и тачним датумом. Када прођу дани, скрипта ће истећи.
Ову функцију можете тестирати тако што ћете поставити прошли датум. Због тога би покретање скрипте требало да доведе до грешке. Користите следећу команду да бисте замаглили скрипту са истеклим датумом:
pyarmor gen -O dist -e 2022-01-01 main.py
Затим покрените заштићену скрипту.
Грешка показује да је лиценцни кључ истекао па се скрипта не може покренути.
Балансирање сигурности и ефикасности
Иако Пиармор нуди робусне механизме замагљивања за побољшање безбедности вашег кода, јесте важно је балансирати између безбедносних мера и одржавања ефикасности и перформанси вашег софтвер. То можете постићи на следећи начин:
- Процена потребе за замагљивањем: Ако ваш софтвер укључује власничке алгоритме, осетљиве податке или јединствену пословну логику, замагљивање је веома корисно. Међутим, за скрипте отвореног кода са минималним проблемима интелектуалне својине, компромис између безбедности и перформанси више се ослања на ефикасност.
- Процена утицаја на перформансе: Обфусцатион уводи додатне трошкове током извршавања због додатних операција и трансформација које се примењују на код. Овај утицај је занемарљив за мале скрипте, али постаје видљивији за веће пројекте. Требало би пажљиво да процените импликације замагљивања на перформансе и спроведете тестирање како бисте били сигурни да ваш софтвер остаје брз и ефикасан.
- Редовно ажурирање и одржавање: Редовно ажурирајте свој замућени код, лиценце и безбедносне механизме да бисте били испред потенцијалних рањивости. Уравнотежите ово са потребом да минимизирате сметње за ваше кориснике.
Може ли неко да разбије замагљени код?
Креирање софтвера се односи на чин уклањања заштите од копирања или механизама лиценцирања софтверске апликације. Да бисте добили неовлашћени приступ његовој пуној функционалности без плаћања. Важно је напоменути да замагљивање вашег софтвера не штити га у потпуности од крекера.
Уз довољно одлучности и ресурса, замагљени код се може разбити. Ово је разлог због којег би требало да тежите редовном ажурирању и одржавању како бисте закрпили све сумњиве рупе.