Я использую скрученный для создания сервера. Проблема в том, что я должен защитить свой код. Так как я не хочу публиковать его, я действительно не ввязываюсь в обфускацию или компиляцию кода python. Моя проблема заключается в том, что мое скрученное приложение должно запускаться с root uid, и у многих людей есть root-доступ к этому серверу. Меня не волнует, могут ли они прочитать его, но я хочу, чтобы они не могли его изменить! Какое лучшее решение, зная, что я использую скручен? Я видел в twistd, tapconvert и mktap, что скрученный может "шифровать" мой код, но я не нашел никакой хорошей документации об этом. Кто-нибудь может мне помочь?
Спасибо заранее за любой ответ =) Приятного дня!
/!\EDIT: У меня есть другой вопрос, я написал свой код, следуя этой части витой документации: http://twistedmatrix.com/documents/current/core/howto/application.html, поэтому я запускаю свой сервер с помощью команды как twistd -y server.py --logfile... Так как я это делаю, я предполагаю, что не могу использовать программное обеспечение, такое как cx_Freeze, чтобы скрыть свой код?
У вас здесь много проблем.
мое скрученное приложение должно работать с root uid
Это плохо. Если в вашем приложении есть уязвимости, тогда они станут более серьезными, запуская их как root. Вы должны подумать о том, чтобы найти способ не запускать его как root. Например, если вы используете только root, поэтому можете привязываться к порту с низким номером, вместо этого используйте authbind.
у многих людей есть root-доступ к этому серверу
Возможно, вам следует ограничить привилегированный доступ к тем людям, которые действительно нуждаются в этом. Если это не вариант, возможно, вы должны хотя бы ограничить доступ к людям, которым вы можете доверять. Кто-то, кто имеет root на машине, может делать все, что захочет, на этой машине, и победить любую схему, которую вы мечтаете.
Меня не волнует, могут ли они прочитать его, но я хочу, чтобы они не могли его изменить!
Тогда вы должны попросить их не изменять его.
Я видел в twistd, tapconvert и mktap, что скрученный может "шифровать" мой код, но я не нашел никакой хорошей документации об этом. Кто-нибудь может мне помочь?
Вы не должны пытаться использовать функции шифрования twistd и mktap. Это не мешает кому-либо изменять ваш код. В лучшем случае они могут помешать кому-то прочитать некоторые из них. Как вы сказали, это даже не ваша цель. Даже если бы это была ваша цель, кто-то с правами root мог бы легко расшифровать эти файлы, поэтому он даже не поможет.
Если вы дадите код кому-то, ожидайте, что они смогут сделать что угодно и все, что захотят. Если вы размещаете код на сервере, вы эффективно предоставляете его всем, у кого есть root-доступ к этому серверу.
Поэтому перестаньте думать о шифровании и других технических проблемах и подумайте о другом пути достижения своих целей - пожалуйте ненадежных администраторов, используйте соответствующую лицензию на код, получите реальный контракт и т.д.
AFAIK, нет способа предотвратить изменение пользователем обычного текстового файла. Корень - это то, что они могут делать все, что захотят, включая модификацию. Почему так много людей имеют корневой доступ к машине?
Если вы обеспокоены, у вас действительно есть два варианта:
Шифруйте файлы любым способом (я не знаю, делает ли это Twisted или как)
"Скомпилируйте" код для вашей платформы. Есть несколько компиляторов Python, но я не знаю, работают ли они с Linux. Я парень свободного программного обеспечения, поэтому хочу, чтобы люди читали и меняли код. Защита меня не касается.
Думаю, у вас есть третий вариант защиты его по закону лицензией. Но если они нарушают вашу лицензию, то есть расходы на их рассмотрение в суд.
Не много вариантов. Сожалею.
Энтони