ChrisB: Apache: Limiteren von Methoden auf Gruppenbasis

Beitrag lesen

Hi,

<Location ~ "^.*">                  # <- Jeglicher Zugriff wird...
        AuthType Basic
        AuthName ...
        AuthUserFile ...
        AuthGroupFile ...
        Require group myadmins          # <- nur der Gruppe "myadmins" gewährt.
        <Limit PUT DELETE>              # <- Die Methoden PUT und DELETE werden...
            #Order deny,allow
            #Deny from all
            Require group myadmins      # <- ebenfalls nur "myadmins" gewährt.
        </Limit>
    </Location>

  
Wozu soll hier <LIMIT> gut sein? Du hast doch bereits generellen Zugriff für die Gruppe unabhängig von der Request-Methode gewährt – welchen Sinn soll es da haben, das gleiche für PUT und DELETE noch mal zu machen?  
  
  

> ~~~apache
 	  

>     ## Freigeben von Indexen, die auf ein Regex-Muster passen  
>   
>     # Beispiel: prefix-  
>     <Location ~ "^/prefix-.*">          # <- Indexe mit dem Präfix "prefix-" werden...  
>         Require group myusers myadmins  # <- ... für die Gruppe "myusers" freigegeben  
>     </Location>  
> </VirtualHost>

Der URL-basierte Zugriffsschutz funktioniert problemlos; ein User ("myusers") kann also nur auf die Indexe, die auf den regulären Ausdruck matchen, zurgeifen, und auf nichts anderes.

In diesem Aufbau kann er aber trotzdem einen Index anlegen auf den er URL-basiert Zugriff hat; also mit dem Präfix "prefix-":

$ curl -XPUT 'http://es.example.com/prefix-neu/' -u normaluser

{"acknowledged":true}


> Eigentlich sollte er das durch die Einschränkung der Methoden nicht dürfen!  
  
Die Methode ist für diese Location nicht eingeschränkt.  
  

> Hat jemand eine Idee was da falsch läuft?  
  
<http://httpd.apache.org/docs/2.2/en/mod/core.html#location>: “<Location> sections are processed in the order they appear in the configuration file”  
  
Ich würde vermuten, dass es daran liegt – deine zweite <Location> schränkt den Zugriff per Methode PUT nicht weiter ein, als einen Nutzer aus der Gruppe myusers zu verlangen – das ist gegeben, also darf der Nutzer PUTten.  
  
MfG ChrisB  
  

-- 
Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/