Как защитить исходный код проекта написанный на Python?

Да, я знаю, что python - это не компилятор, а интерпретатор и знаю, что можно делать самораспоковывающийся архив.

Но вопрос в другом. Например, если речь идет о продаже проекта, то как можно защитить код от утечки? Мне на ум приходит только вариант взять сформировать docker-образ и залить его в репозиторий. Но, все равно код можно прочитать - достаточно зайти в запущенный контейнер и вытащить оттуда целехонькие файлы.

Есть ли способ какого-то "компилирования" проекта (например, написанного на FastAPI, Flask или Django с кучей всяких модулей и роутов) или единственный способ через сборку докер-образа?


Ответы (1 шт):

Автор решения: Fox Fox

Вопрос этот в пространство, поэтому и ответы соответствующие, то есть тоже в пространство. Я проработал несколько лет в банке и имею представление об общих принципах безопасности, попробую здесь направить размышления в предметное русло. Если чётко понимать что именно надо защитить, это уже половина ответа.

  1. Допустим, я не хочу делиться своими технологиями. Ну, не думаю же я всерьёз, что одна программа будет кормить меня всю жизнь. Та берите. Уже давно доказано, что чужие технологии могут помочь, сократить время разработки, но не сделают из человека без способностей программиста никогда. Многие пытаются, например, делать лоадеры, которые расшифровывают тексты исполняемых программ. Можно поймать, если постараться, расшифрованный код. Сливают всё и вся, программисты увольняются и пользуются своими наработками в других местах работы. Базы данных продаются и конвертируются. В стране, где не уважают авторское право других, не стоит ждать иного отношения к себе.

  2. Базы данных. Какие? Локальные, сетевые, веб? Шифрование с открытым ключом, защита со стороны сервера. Даже в этом случае можно сделать скриншот или сфотографировать экран с секретными данными. Камеры наблюдения в офисе и надсмотрщик. Это скорее административный вопрос - стукачество, стимулирование лояльности и прочее в этом духе.

  3. Действия. Тоже зависит от ситуации. Там, где рано или поздно придётся расследовать инцидент, не ленятся писать логирование на каждом этапе действий пользователя.

  4. Можно попытаться контролировать процесс взлома скриптов с помощью цифровых подписей, созданных для файлов.

  5. Всегда нужно помнить о том, что паяльник - универсальный дешифратор паролей. Всё должно быть максимально децентрализовано, сдублировано, логировано. Служба безопасности постоянно должна заниматься моделированием ситуаций и учениями, сама должна постоянно пытаться совершить учебный взлом, уметь мыслить как взломщик. Для того, чтоб эффективно противостоять в реальной ситуации.

Ну вот так примерно надо рассуждать. Вопрос должен поэтапно детализироваться. В процессе появятся и ответы.

→ Ссылка