[Zope-dev] Issues with restricted Python (was Re: Zope 2.12 - supported Python versions)
Jim Fulton
jim at zope.com
Fri Oct 24 10:26:05 EDT 2008
On Oct 24, 2008, at 10:01 AM, Chris Withers wrote:
> Jim Fulton wrote:
>> The problem is that it it starts with an environment in which
>> things are allowed by default, and takes things away. This means
>> that if anything is forgotten, then you end up with holes.
>
> Isn't there a way we could change the AST manipulation such that we
> start with nothing and only allow opcodes as and when they're added
> to the RestrictedPython implementation?
No. we're starting with an existing program written in a Python script
or expression. We then have to sanitize it.
>> The Zope 3 security proxy approach is much better
>
> I agree, but it doesn't solve all the problems. My understanding of
> the original set of requirements which we're trying to solve here
> was basically that of Python Scripts: to allow python code to be
> written through the web. This means:
>
> - restricting access to atributes of objects
> (security proxies give us this, right?)
Yes
> - restricting access to features of the language such as imports such
> that unsafe things such as stripping security proxies can't be done.
> (security proxies *don't* give us this, right?)
Yes, they do, as long as all builtins, including __import__, are
wrapped and as long as you only include safe builtins.
> ...and some nice to haves:
>
> - restricting memory used by executing the code
> - restricting cpu used by executing the code
These require deep changes to the interpreter.
> I know RestrictedPython doesn't support these last two very well,
> but there are hints that it would have liked to if it could.
It can't support these at all.
>> I'm not sure that the PyPy guys are really authorities on the sorts
>> of problems we're trying to address, although there is some overlap.
>
> Who is then? ;-)
In the Python community, I;d say we are. Beyond that, I don't know.
Jim
--
Jim Fulton
Zope Corporation
More information about the Zope-Dev
mailing list