2010-04-11 16 views
5

Wie kann ich meinen Webserver schützen, wenn ich benutzerdefinierten Benutzercode auf dem Server ausführen. Wenn ein Benutzer seine Python-Quelle auf meinem Server einreichen und ausführen kann.Sicherste Python-Code läuft

Vielleicht einige Module oder Linux-Tools zum Schließen von Netzwerk- und Hardwareaktivitäten für dieses Skript.

Vielen Dank für Ihre Hilfe!

Antwort

0

Im Allgemeinen ist Python nicht die beste Sprache Wahl, wenn Sie die Ausführung von nicht vertrauenswürdigem Code zulassen möchten. JVM und .NET unterstützen Sandboxing viel besser, daher wären Jython und IronPython die bessere Wahl.

+2

Eigentlich wäre der sicherste Ansatz, 'seccomp' zu verwenden, der die verfügbaren Systemaufrufe auf' exit() ',' read() 'und' write() 'verriegelt (letzterer zu bereits geöffnet) Dateideskriptoren); Dies würde erlauben, dass sogar beliebige Stücke von nativen Binärdateien ausgeführt werden. Da Python jedoch mehr Systemaufrufe als diese benötigt, ist es mit seccomp nicht kompatibel. Ich vertraue seccomp viel mehr als jeder Sprach- oder Interpreter-Level-Sandbox, einfach weil es einfacher, weniger flexibel und restriktiver ist. –

+0

Vielleicht mit Modus 2 seccomp Python wird die Option haben, in einem sicheren Modus zu laufen. –

Verwandte Themen