Előfordulhat, hogy nem szeretné, ha döntő fontosságú Python-szkriptjeit rosszindulatú szereplők visszafordítanák. Íme, hogyan védheti meg.

A Python jól olvasható és széles körben elterjedt. Bár ez az olvashatóság ösztönzi az együttműködést, növeli a jogosulatlan hozzáférés és a visszaélés kockázatát. Versenytársai vagy rosszindulatú szereplői megfelelő biztosítékok nélkül replikálhatják az Ön algoritmusait és saját logikáját. Ez negatívan befolyásolja a szoftver integritását és a felhasználók bizalmát.

A robusztus biztonsági intézkedések, például az elhomályosítás és a licencellenőrzés alkalmazása megvédi a szoftvert a potenciális fenyegetésekkel szemben. A Python-szkriptek védelme nem csupán gyakorlat; ez egy kritikus stratégia az innovációk bizalmas kezeléséhez, és fenntartja a felhasználók bizalmát a digitális környezetben.

Pyarmor megértése

Pyarmor egy parancssori könyvtár. Segít megvédeni és elhomályosítani a Python-szkripteket és csomagokat. Átalakítja az eredeti Python-kódot egy nehezebben érthető formává, miközben megőrzi funkcionalitását. Az obfuszkációs folyamat átnevezi a változókat, függvényeket és osztályokat nem leíró nevekre. Ezenkívül eltávolítja a megjegyzéseket és átstrukturálja a kódot. Ez megnehezíti a kód visszafejtését, megváltoztatását vagy másolását.

instagram viewer

A Pyarmor képes megvédeni az egyes Python-szkripteket és a teljes csomagokat, és még licencellenőrzést is hozzáadhat a kódhoz.

A Pyarmor Library telepítése

A Pyarmor szerepel a Python Package Indexen (PyPI). A telepítéshez használja a pip-t a következő parancs futtatásával:

pip install pyarmor

Nem kötelező telepítenie a Pyarmort ugyanabba a könyvtárba, ahol a projektje található. Bárhol telepítheti a számítógépére, és bármilyen könyvtárból biztonságossá teheti a Python-szkripteket.

Ha azonban úgy szeretné futtatni a védett szkripteket, hogy nem kell telepítenie a Pyarmort a célgépre, akkor ugyanabba a könyvtárba kell telepítenie, ahol a projekt ad otthont. Ennek az az oka, hogy a védett szkriptek hivatkozásokat tartalmaznak a Pyarmor futási környezetre, amelynek jelen kell lennie a szkriptek futtatásához.

Egyedi Python-szkriptek védelme

Az egyes szkriptek védelme Pyarmor használatával egyszerű. Példaként szolgál a következő szkript, amely két számot ad hozzá.

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)

A navigációhoz használja a parancssort abba a könyvtárba, amelybe a Pyarmort telepítette. Ezután futtassa a következő parancsot a szkript titkosításához és obfuszkálásához. Cserélje ki main.py a forgatókönyv nevével.

pyarmor gen --output dist main.py

A parancs futtatása után a Pyarmor létrehoz egy új nevű mappát ker. Benne található a biztonságos szkript.

Nyissa meg a védett szkriptet a tartalmának megtekintéséhez.

A fenti képernyőkép a kimenetet mutatja, miután a Pyarmor elhomályosítja és titkosítja az egyszerű hozzáadási szkriptet. Most már nem tudod megmondani, mit csinál a forgatókönyv, ha csak ránézel.

A védett szkript futtatásához nyissa meg a terminált vagy a parancssort, és navigáljon a parancsfájlt tartalmazó helyre ker Könyvtár. Ezután használja a következő parancsot a szkript futtatásához:

python dist/main.py

Cserélje ki main.py a forgatókönyv nevével. A szkriptnek úgy kell futnia, ahogyan az elmosódás nélkül futna. Tesztelje alaposan, hogy megbizonyosodjon arról, hogy minden funkció a várt módon működik.

A teljes Python-csomagok védelme

A csomagok céljuktól függően néhány modult vagy több száz modult tartalmazhatnak. Az egyes modulok külön-külön történő védelme fárasztó lehet. Szerencsére a Pyarmor képes egy teljes csomagot biztonságossá tenni anélkül, hogy minden modult külön kellene megadnia.

Tegyük fel, hogy van egy egyszerű Python-csomagja minta_csomag a következő szerkezettel:

sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py

tudsz hozzon létre annyi modult, amennyit csak szeretne.

A csomag titkosításához és elhomályosításához nyissa meg a terminált vagy a parancssort, és keresse meg azt a könyvtárat, amelyben a csomag található. Ezután futtassa a következő parancsot:

pyarmor gen -O dist -r -i sample_package

Cserélje ki minta_csomag a csomag nevével. Ez a parancs titkosítja és elhomályosítja a csomagkönyvtárat, és elmenti a védett kimenetet a ker Könyvtár. A védett csomagot ugyanúgy használja, mint bármely más Python-csomag esetében.

Például. A fenti mintacsomag használatához hozzon létre egy új szkriptet a ker Könyvtár:

from my_package import module1, module2

module1.say_hello()
module2.do_something()

A kód futtatásakor a csomagnak úgy kell működnie, mint a biztonságossá tétele előtt.

A szkripthez való hozzáférés szabályozása

Érdemes lehet korlátozni azt az időt, ameddig a felhasználó futtatja a szkriptet. Például a próbaidőszak alatt.

A szkript futási idejének korlátozásához használja a következő parancsot a szkript obfuszkálásakor.

pyarmor gen -O dist -e 30 main.py

Cserélje ki 30 hány napig szeretné, hogy a szkript aktív legyen. Pontos dátummal is helyettesítheti. A napok letelte után a szkript lejár.

Ezt a funkciót egy múltbeli dátum beállításával tesztelheti. Emiatt a szkript futtatása hibát jelez. A következő paranccsal elhomályosíthatja a lejárt dátummal rendelkező szkriptet:

pyarmor gen -O dist -e 2022-01-01 main.py

Ezután futtassa a védett szkriptet.

A hiba azt mutatja, hogy a licenckulcs lejárt, ezért a szkript nem futhat.

A biztonság és a hatékonyság egyensúlya

Míg a Pyarmor robusztus obfuszkációs mechanizmusokat kínál a kód biztonságának fokozása érdekében, ez az fontos egyensúlyt teremteni a biztonsági intézkedések és az Ön hatékonyságának és teljesítményének fenntartása között szoftver. Ezt a következő módon érheti el:

  • Az elhomályosítás szükségességének értékelése: Ha szoftvere szabadalmaztatott algoritmusokat, érzékeny adatokat vagy egyedi üzleti logikát tartalmaz, a homályosítás nagyon előnyös. A minimális szellemi tulajdonjogi aggályokkal járó nyílt forráskódú szkriptek esetében azonban a biztonság és a teljesítmény közötti kompromisszum inkább a hatékonyság felé hajlik.
  • A teljesítmény hatásának felmérése: Az obfuszkálás további futási többletterhelést jelent a kódra alkalmazott extra műveletek és átalakítások miatt. Ez a hatás elhanyagolható kis szkriptek esetén, de nagyobb projektek esetén észrevehetőbbé válik. Gondosan fel kell mérnie az obfuszkálás teljesítményre gyakorolt ​​hatásait, és tesztelést kell végeznie annak biztosítása érdekében, hogy szoftvere érzékeny és hatékony maradjon.
  • Rendszeres frissítések és karbantartások elvégzése: Rendszeresen frissítse elhomályosított kódját, licenceit és biztonsági mechanizmusait, hogy megelőzze a lehetséges sebezhetőségeket. Egyensúlyozza ezt azzal, hogy minimálisra kell csökkentenie a felhasználói zavarokat.

Valaki fel tudja törni a zavart kódot?

A szoftver feltörése egy szoftveralkalmazás másolásvédelmi vagy engedélyezési mechanizmusának eltávolítására utal. Annak érdekében, hogy illetéktelen hozzáférést kapjon a teljes funkciójához anélkül, hogy fizetne érte. Fontos megjegyezni, hogy a szoftver elhomályosítása nem védi meg teljesen a feltörőkkel szemben.

Kellő elszántsággal és erőforrásokkal a zavart kód feltörhető. Ez az oka annak, hogy törekednie kell a rendszeres frissítések és karbantartások elvégzésére, hogy kijavítsa a feltételezett kiskapukat.