On Saturday, 6 October 2012 12:49:29 UTC+5:30, Chris Angelico  wrote:
> On Sat, Oct 6, 2012 at 8:22 AM, Robin Krahl <m...@robin-krahl.de> wrote:
> 
> > Hi all,
> 
> >
> 
> > I need to execute untrusted scripts in my Python application. To avoid 
> > security issues, I want to use a sandboxed environment. This means that the 
> > script authors have no access to the file system. They may only access 
> > objects, modules and classes that are "flagged" or "approved" for scripting.
> 
> >
> 
> > I read that I will not be able to do this with Python scripts. (See 
> > SandboxedPython page in the Python wiki [0] and several SE.com questions, 
> > e. g. [1].) So my question is: What is the best way to "embed" a script 
> > engine in a sandboxed environment that has access to the Python modules and 
> > classes that I provide?
> 
> 
> 
> With extreme difficulty. A while back (couple years maybe? I don't
> 
> remember), I ignored everyone's warnings and tried to make a sandboxed
> 
> Python, embedded in a C++ application. It failed in sandboxing. With
> 
> just some trivial tinkering using Python's introspection facilities, a
> 
> couple of python-list people managed to read and write files, and
> 
> other equally dangerous actions. Shortly thereafter, we solved the
> 
> problem completely... by switching to JavaScript.
> 
> 
> 
> Embedding CPython in an application simply doesn't afford sandboxing.
> 
> To what extent do you actually need to run untrusted Python? Can you,
> 
> for instance, sandbox the entire process (which wasn't an option for
> 
> what we were doing)? Perhaps chrooting the Python interpreter will do
> 
> what you need. But there may still be leaks, I don't know.
> 
> 
> 
> ChrisA

Something like ast.literal_eval may be useful.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to