2010-04-11 13 views
5

Jak mogę zabezpieczyć mój serwer WWW, jeśli uruchomię niestandardowy kod użytkownika na serwerze. Jeśli dowolny użytkownik może przesłać swoje źródło pythona na mój serwer i uruchomić go.Najbezpieczniejszy kod Pythona działający

Może niektóre moduły lub narzędzia linuksowe do zamykania dowolnej aktywności sieciowej i sprzętowej dla tego skryptu.

Dziękuję wszystkim za pomoc!

Odpowiedz

0

W ogóle, python nie jest to najlepszy wybór języka, jeśli chcesz, aby umożliwić wykonanie kodu niezaufane. JVM i .NET mają znacznie lepszą obsługę piaskownicy, więc Jython i IronPython będą lepszym wyborem.

+2

Właściwie - najbezpieczniejszym sposobem byłoby użycie 'seccomp', który blokuje dostępne wywołania systemowe na' exit() ',' read() 'i' write() '(ten drugi już otwiera deskryptory plików); pozwoli to na uruchamianie nawet dowolnych fragmentów natywnego pliku binarnego. Jednakże, ponieważ Python potrzebuje więcej systemów niż te, aby działały, jest niekompatybilny z seccomp. Ufam seccomp znacznie bardziej niż jakakolwiek piaskownica na poziomie języka lub interpretera, ponieważ jest prostsza, mniej elastyczna i bardziej restrykcyjna. –

+0

Może w trybie 2 seccomp python będzie miał opcję uruchamiania w trybie bezpiecznym. –