[Bf-committers] "Security" gets in the way

Jason Wilkins jason.a.wilkins at gmail.com
Fri Apr 30 19:54:54 CEST 2010


Sorry if this discussion is considered closed, but I wanted to read
everything before chiming in.

On Wed, Apr 28, 2010 at 9:06 AM, Benjamin Tolputt <btolputt at internode.on.net
> wrote:

> However, the "sand-boxing" as presented in PyPy is very crude and will
> do nothing to fix the issues with Python in Blender.


I think this is incorrect.  The way PyPy is implemented presents a possible
solution.  Depending on the maturity of PyPy this may be ways off, so I'm
just throwing this out to be considered.

PyPy is a meta-circular interpreter, what that boils down to is the fact
that you can implement a python interpreter in the language with a small
amount of python code.

But, you don't have to implement a perfect python interpreter, you can
change it a little, for example, you could inspect every function before it
is dispatched and make sure it is on a white list.

It seems to me a possible solution is to implement a python interpreter (in
PyPy) that has a white list of functions that are allowable in certain
contexts within Blender.

The whole idea behind a meta-circular interpreter is that you can implement
the language easily in itself, and then hack your implementation to change
the language itself to your needs.

Also, maybe this doesn't depend on PyPy, but maybe it is possible to write a
meta-circular interpreter in the standard python distribution (I'm not a
python programmer, but I know how I'd do this in Scheme :).


More information about the Bf-committers mailing list