Code per Netzwerk übertragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

@Leonidas
Ich sag ja, wer wirklich will, der kann auch :twisted:

@DasIch
Was mich generell an diesem Client<->Server Modell irgendwie stört, ist die Tatsache dass alles hin und hergeschoben wird. Angenommen ich möchte über den Inhalt einer Datei iterieren, dann lade ich die Datei schrittweise hoch zum Server, was ich nicht sonderlich toll finde.
Noah
User
Beiträge: 15
Registriert: Montag 17. Januar 2011, 08:20

Ich verstehe nicht, wie ihr auf RPC kommt? Er möchte doch code, der auf einem Server liegt, clientseitig ausführen. Bei RPC würde doch der Code auf dem Server ausgeführt werden, oder?

Sicherheitstechnisch ist das natürlich immer ein Problem, wenn man ausführbare Sachen von irgendwo runterlädt, z.B. schon bei Auto-Update, was sie selbst beim neuen ePerso vergeigt haben: http://janschejbal.wordpress.com/2010/1 ... utoupdate/

Wenn es also sicher sein soll:

1. Code wird serverseitig signiert
2. Code herunterladen
3. Zertifikat Prüfen (Dies muss geschehen, bevor auch nur irgendwas damit getan wird, denn selbst beim Entpacken kann mann sich ärger einhandeln)
4. Code ausführen.

Die eigentliche Frage bezog sich ja nur auf Punkt 4. Wenn es Python-Code ist, gibt es da so weit ich sehe nur 2 Möglichkeiten:

a) Abspeichern und Importieren
b) exec()

Da a) ja explizit nicht gewünscht war, bleibt ja nur noch b) übrig.


P.S.: Zu exec() wird ja immer gemahnt, dass es total unsicher sei. Kommt natürlich darauf an, was man machen will. Wenn man z.B. ein Projekt hat, wo die andere Seite (nach authentifizierung) alles machen können soll, was sie will (inklusive Festplatte löschen), dann ist exec() vollkommen OK.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

In diesem Zusammenhang könnte ja auch dieser Thread interessant sein.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Noah hat geschrieben:a) Abspeichern und Importieren
Das kann man auch eleganter Lösen, da CPython es erlaubt in die Import-Interna einzugreifen und dort eigenen Code auszuführen der etwa Module runterlädt, Signaturen prüft etc.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

Hm, ja, hätte ich vielleicht erwähnen sollen dass das Problem gelöst ist? :lol:
(Denn der von Hyperion verlinkte Thread war bereits die Lösung)
Antworten