AW: [mailinglist] [Python-de] Sandkastenspiele

Uwe Schmitt schmitt at num.uni-sb.de
Fre Jun 13 18:23:34 EDT 2003


:: Hallo,
::
:: ich habe gestern ein eigenes Wiki geschrieben, das in einem Punkt
:: extrem flexibel ist: man kann beliebigen Python-Quellcode in die
:: Seiten setzen, der dann entsprechend ausgefuehrt wird. Aber das ist
:: oft mehr Flexibilitaet, als man bei unbekannten Benutzern haben
:: moechte, d.h. es stellt sich die Frage nach Sandkastenszenarien.
::
:: rexec und basion scheinen ja aufgegeben worden zu sein, und auf
:: comp.lang.python wird die Frage oefter gestellt aber rein prak-
:: tisch meist unbefriedigend beantwortet (Halteproblem, etc.).

Hallo,

hab mir selbst mal eine Sandbox gebastelt. Die Hacks für
rexec/Bastion funktionieren bei meiner Implementierung nicht.

Leider läßt Python es nicht zu ein "exec" von außen "abzuschiessen",
das heißt "böser" Code der unsinnig viel Speicher allokiert oder
in einer Endlosschleife hängen bleibt, kann nicht unterbunden werden.

Download via http://www.procoders.net/pythonstuff

In der Sandbox ist das "import" Statement generell ausgeschaltet,
der "Betreiber" der Sandbox kann allerdings Module dem Code
zur Verfügung stellen, das sollte wohl nur bei sicheren Modulen
wie "math" geschehen, wer "sys" zur Verfügung stellt schießt
sich wahrscheinlich ins eigene Bein.
Desweiteren kann man "open" und "file" kontrollieren, d.h.
nur bestimmte Dateinamen, Pfade und Filemodi erlauben.

Eine richtige Doku gibt es noch nicht, aber Beispiele.

Ich freue mich natürlich über gefundene Lecks, mir gehen
da inzwischen die Ideen aus...

Gruß, Uwe.