[Zope] Re: major problems placing authentication on an extranet site-security flaw?

Michael Vartanyan pycry at doli.biz
Fri Feb 10 18:20:08 EST 2006


In the very beginning of my Zope career, I once "shot myself in the 
foot" with a very stupid thing... I kept it to myself then but if we are 
talking about Zope security settings and usability of the ZMI at the 
same time, perhaps it is an ideal place to raise this issue.

If you use the famous manage_access page with all the checkboxes to set 
permissions on an object, it then calls manage_changePermissions to 
using POST method to apply your settings. The result is that 
http://your_object_url/manage_changePermissions (without any parameters) 
stays in your browser visited url history. Now imagine what happens if 
you click this url by mistake being logged as someone with "Change 
permissions" permission.

I guess changing the form method to GET is not going to be liked by 
browsers that put additional restrictions on URL length. So I would 
propose to introduce a basic request sanity check in the 
manage_changePermissions itself. I cannot think of any use for resetting 
all permissions and acquisition for everyone, so the easiest way to do 
that is to simply check that at least something exists in the form:

...
    def manage_changePermissions(self, REQUEST):
        """Change all permissions settings, called by management screen.
        """
 >>    if  len(REQUEST.form)<2: raise ...
        self._isBeingUsedAsAMethod(REQUEST, 0)
        valid_roles=self.valid_roles()
        indexes=range(len(valid_roles))
        have=REQUEST.has_key
        permissions=self.ac_inherited_permissions(1)
        fails = []
...

or something like that.


J Cameron Cooper wrote:

> michael nt milne wrote:
>
>> Well I said it was over and out but I have to respond to this latest 
>> post. I appreciate the help here and will be trying out some of the 
>> suggestions. Basically though, Zope permissions and security could be 
>> made a lot more usable. It's far too technically focused and this is 
>> the opinion of a few others as well. The whole ZMI interface could be 
>> put through a usability re-design to be honest and that's not even to 
>> comtemplate the security areas.
>
>
> The ZMI is well known to be geeky. "For developers, by developers" 
> might be its motto. If you have some concrete suggestions, by all 
> means put them forth. Patches are even better.
>
> Anyway, ACLs are ACLs. And if you don't know what you're doing, you 
> can get into trouble real fast. Ever tried managing file security on a 
> Windows machine with ACLs?
>
> CMF (this includes Plone) provides a way to manage this complexity: 
> workflow states. Each workflow has a set of permissions it manages, 
> and a setting of these for each state. This is much more easily 
> comprehended than infinite fiddling with the ZMI Security tab.
>
> Also, as I recall, there was a "private plone site" howto on 
> plone.org; dunno what happened to it.
>
>         --jcc




More information about the Zope mailing list