Rolf Magnus wrote:
Hi,

I would like to embed a python interpreter within a program, but since that
program would be able to automatically download scripts from the internet,
I'd like to run those in a restricted environment, which basically means
that I want to allow only a specific set of modules to be used by the
scripts, so that it wouldn't be possible for them to remove files from the
hard drive, kill processes or do other nasty stuff.
Is there any way to do that with the standard python interpreter?


I won't really count on that. In my opinions, which may be wrong, Python is not constructed to work in a sandbox like Java. Java does it by subjecting all classes that it loads through a security manager. What you seems to want is a Python to have Java applet-typed of restrictions.


You can try to use 'exec' to run your scripts in a constructed environment. For example,

global = {}
local = {}

... your stuffs ....

statement = [] # to hold the script to run

for line in statement:
        exec statement in global, local

global and local are the global and local namespaces respectively. Although it had been explained to me before but I can't recall the details of how it works. In gist, you may be able to craft a global and local environment for your script to run in.

I do not know if it is possible to disable or override 'import'......

maurice
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to