[Zope-dev] PythonScripts
Dieter Maurer
dieter@handshake.de
Fri, 29 Dec 2000 13:23:18 +0100
I looked at ZopeCVS's PythonScripts.
I mostly like it -- with the following exceptions:
* Namespace binding
It does not yet work, apparently:
In DTML, I have:
<dtml-call "REQUEST.set('a','a')">
<dtml-var pyscript>
in PythonScript "pyscript":
return _['a']
and I get: "KeyError: a"
* Try it
It is very nice, that such a "try it" exists!
However, as I am in Python, I would like to use
Python expressions as argument values.
Currently, the values are treated as strings.
Default argument values are displayed as part of the
argument name. If the values in the "try it" tab
were Python expressions, the default values should be
used to preset the value fields.
* Preventing creation of large sequences
Apparently, you try hard to prevent the creation of large
sequences. For a malicious user, it is however quite
easy to counter you measures: either with a "while" loop
or with a nested sequence repetition.
To make it safe, you would probably need to limit
the total complexity of all objects (together) that
are created in the script (or other scripts called by
this one).
Alternatively, you could document that various
security issues remain, if PythonScripts are made
editable through the web.
* Import control
I know that I can control what modules (and names) can be imported
in PythonScripts by providing an
__access_to_unprotected_subobjects__
definition *in the* module.
However, this is a global control affecting all PythonScripts
in an installation. I see the demand for more
localized control, e.g. that a script not editable through
the web should import modules that are not safe for
use by anonymous users.
Dieter