Python - язык простой и удобный, но в плане безопасности исходников у него есть слабое место: скрипты легко читаются, модифицируются и анализируются. Если ты разрабатываешь утилиту, обрабатываешь конфиденциальные данные или просто хочешь защититься от «любопытных», стоит продумать меры защиты. Разберём основные подходы:
1️⃣ Компиляция в байткод
Python автоматически компилирует .py в .pyc, но и их можно дизассемблировать. Более надёжный способ - сборка в .pyd/.so (динамическую библиотеку):
pip install cython
cythonize -i myscript.py
На выходе - скомпилированный бинарник. Исходный код спрятан, но не полностью защищён от реверса.
2️⃣ Шифрование и упаковка. Можно шифровать скрипты и расшифровывать их только в момент выполнения:
Использовать PyArmor, который шифрует байткод:
pip install pyarmor
pyarmor obfuscate myscript.py
Использовать Nuitka или PyInstaller - обфускация + упаковка в исполняемый файл:
pyinstaller --onefile myscript.py
3️⃣ Изоляция через виртуальное окружение. Размещай код в venv, где минимум привилегий и стороннего ПО.
Для чувствительных задач - запускай скрипты через Docker, изолируя переменные окружения и доступ к файловой системе.
4️⃣ Безопасное хранение секретов. Не храни API-ключи и пароли в коде:
📍 Используй .env файл + библиотеку python-dotenv
📍 Храни секреты в HashiCorp Vault, AWS SSM или аналогах
📍 Шифруй конфиги с GPG, если нужно хранить локально
Полной защиты от реверса не будет - Python не компилируемый в машинный код язык. Но затруднить анализ, защитить данные и повысить безопасность вполне реально.
#python #security
🧑💻 NetworkAdmin