Seite 1 von 1

Compilierte Pythonscripts als cgi aufrufen

Verfasst: Samstag 17. März 2007, 13:40
von andreas1965
Aufruf einer *.pyo unter apache 1.33 gibt einen Fehler zurück.
Ich nehme an, es liegt am python-pfad #!/usr/bin/python der in der byte-code version nicht gelesen wird. Wie kann man das lösen?

Andreas

Verfasst: Samstag 17. März 2007, 13:53
von BlackJack
Eine *.py benutzen.

byte code ist immer noch besser als ASCII

Verfasst: Samstag 17. März 2007, 14:02
von andreas1965
wenn ich auf einem fremden Server bin und dem Betreiber (aus Erfahrung) nicht traue..

Aber ernsthaft: Gehts wirklich nur als .py? oder muss man nur den Apachen entsprechend vorbereiten oder ..


Andreas

Verfasst: Samstag 17. März 2007, 15:13
von BlackJack
Was heisst Du traust dem Betreiber nicht? Eine *.pyo-Datei kann er doch auch einfach ersetzen, sich den Bytecode anschauen, "monkey-patchen" usw.

Re: byte code ist immer noch besser als ASCII

Verfasst: Samstag 17. März 2007, 18:46
von Leonidas
andreas1965 hat geschrieben:wenn ich auf einem fremden Server bin und dem Betreiber (aus Erfahrung) nicht traue..
Betreiber wechseln?

Denn pyo-Dateien sind so ziemlich gar kein Schutz. Dafür sind sie auch nicht gedacht, sie sind nur dafür da, damit der Python-Interpreter sich das generieren von Bytecode sparen kann, mehr nicht.

Verfasst: Sonntag 18. März 2007, 09:02
von andreas1965
BlackJack hat geschrieben:Was heisst Du traust dem Betreiber nicht? Eine *.pyo-Datei kann er doch auch einfach ersetzen, sich den Bytecode anschauen, "monkey-patchen" usw.
Zu copy-paste brauchts wenig kriminelle Energie und Kenntnisse. Es reicht, wenn man ein wenig Erfahrung mit Perl oder Ruby hat, um den Code ein wenig umzustricken, und dann zu behaupten, es wär der eigene - Bytecode decompilieren ... da muß man schon eine ganze Menge Zeit und Recherche reinstecken.

Betreiber wechseln geht nicht, weil es ein internes Netz ist. Selbst konfigurierte (und administrierte) Server werden nicht zugelassen. Ich muß also dem Admin des Servers das Scriptenpaket zur Installation in die Hand drücken.

Ich habe jetzt die Module neu gesplittet und alle wesentlichen Funktionen und Aufrufe in ein Modul mit verschiedenen Klassenobjekten übertragen. Das Modul wird byte-code compiliert und die Cgi-Pys werden sozusagen als front-end aufgerufen.

Andreas

Verfasst: Sonntag 18. März 2007, 10:07
von BlackJack
Oh man, Du musst ein Genie sein. Nur wenige Leute schreiben Code, den es sich wirklich zu "klauen" lohnt.

Verfasst: Sonntag 18. März 2007, 12:19
von Leonidas
andreas1965 hat geschrieben:Bytecode decompilieren ... da muß man schon eine ganze Menge Zeit und Recherche reinstecken.
Nein, es reicht decompyle anzuwerfen.

Verfasst: Sonntag 18. März 2007, 12:28
von mq
Leonidas hat geschrieben:Nein, es reicht decompyle anzuwerfen.
Das kommt aber meines Wissens nach nicht mit dem Bytecode neuerer Python-Versionen klar.

Verfasst: Sonntag 18. März 2007, 13:01
von Leonidas
lumax hat geschrieben:
Leonidas hat geschrieben:Nein, es reicht decompyle anzuwerfen.
Das kommt aber meines Wissens nach nicht mit dem Bytecode neuerer Python-Versionen klar.
Es funktioniert bis Python 2.3. Wenn aber der Code ausreichend wirchtig ist, dann lohnt sich vielleicht sogar der auswand, den Decompiler auf eine aktuelle Version zu aktualisieren. Ich weiß aber nicht, wie schwer das ist.