Re: PL/PythonU - Mailing list pgsql-hackers

From Hannu Krosing
Subject Re: PL/PythonU
Date
Msg-id 1217872593.7332.6.camel@huvostro
Whole thread Raw
In response to PL/PythonU  ("David Blewett" <david@dawninglight.net>)
Responses Re: PL/PythonU
List pgsql-hackers
On Mon, 2008-08-04 at 13:08 -0400, David Blewett wrote:
> Hi All:
> 
> This is an off-shoot of the "Do we really want to migrate plproxy and
> citext into PG core distribution?" thread.
> 
> On the way home from PyOhio, I had a conversation with a few people
> that use Zope a lot. I happened to mention that Postgres doesn't have
> an untrusted version of pl/python and they were curious as to why.
> They directed me to Zope's Restricted Python implementation [1][2]. In
> doing some research, I found the "Pl/Python -- current maintainer?"
> [3] thread from 2006. I also found this [4] thread on the python-dev
> mailing list.
> 
> Hannu: You had mentioned bringing pl/python up to the level of some of
> the other pl's. Have you thought any more about pl/pythonu?

My recollection of old times (about python v. 1.6) was that the
restricted sandboxes had some fatal flaws. I have not followed zope's
RestrictedPython enough to have an opinion on its safety.

> David Blewett
> ------------------
> A few quotes from the python-dev thread (links at bottom):
> "Here is some context for Python-Dev.
> 
> RestrictedPython is a custom Python compiler that, when combined with a
> restricted environment, provides a sandbox safe enough to allow
> partly-trusted people to write and execute scripts on a Zope server.  It
> has been used in Zope 2 for a long time and will have a future in Zope
> 3.  The sandbox is more extensive than what the rexec module provides.
> 
> The safety of RestrictedPython has been validated in a somewhat formal
> process with Python 2.4.  Ranjith is working to validate it with Python
> 2.5." -- Shane Hathaway [5]

Will definitely look at it. Thanks.

> "No, he means the restricted Python compiler and capability-proxy
> system used by Zope.  You know, the one I always bring up whenever
> anybody says they want to implement capabilities in Python?  ;-)
> 
> Zope's restricted Python is basically a combination of a special
> compiler, __builtin__ replacements, and a proxy type.  Instead of
> using LOAD_ATTR opcodes, the compiler generates code that calls a
> special getattr() function instead, and most objects other than
> relatively-safe builtin types are wrapped in proxies that control
> what attributes can be accessed and what operations can be performed.
> 
> The restricted Python framework itself doesn't impose any particular
> security policy; proxies delegate checks to "checker" objects that
> are essentially capabilities.  Mostly, it focuses on creating a safe
> sandbox that can be expanded."  -- Phillip J. Eby [6]
> 
> 1. http://svn.zope.org/RestrictedPython/trunk/
> 2. http://svn.zope.org/zope.security/trunk/src/zope/security/untrustedpython/
> 3. http://archives.postgresql.org/pgsql-hackers/2006-02/msg01036.php
> 4. http://mail.python.org/pipermail/python-dev/2008-July/081340.html
> 5. http://mail.python.org/pipermail/python-dev/2008-July/081412.html
> 6. http://mail.python.org/pipermail/python-dev/2008-July/081347.html



pgsql-hackers by date:

Previous
From: "David E. Wheeler"
Date:
Subject: Re: Type Categories for User-Defined Types
Next
From: Alvaro Herrera
Date:
Subject: Re: Type Categories for User-Defined Types