HanSolo: .htaccess / was bedeutet diese Zeile

Hallo,

könnt ihr mir sagen, was der folgende Kram bedeutet und wo er Verwendung findet:

<http://de.selfhtml.org/servercgi/server/htaccess.htm#ip_bereiche_namen@title=
Deny from all>

Wird diese Zeile direkt 1:1 in die .htaccess Datei kopiert? Mir fehlt total der Zusammenhang.

  1. Hi,

    wenn du nicht zwanghaft Zeilenumbrüche setzen würdest, hätte der Link auch richtig funktioniert:

    <http://de.selfhtml.org/servercgi/server/htaccess.htm#ip_bereiche_namen@title=Deny from all>
    Wird diese Zeile direkt 1:1 in die .htaccess Datei kopiert? Mir fehlt total der Zusammenhang.

    Ja, du hast die Direktive auch selbst aus dem Zusammenhang gerissen. Sie tritt üblicherweise zusammen mit einer Order- und meist auch einer Allow-Direktive auf, so wie das Beispiel in SELFHTML auch zeigt:

    Order deny,allow  
    Deny from .aol.com  
    Deny from 192.168  
    Allow from 192.168.220.102
    

    Bedeutet: Als erstes werden die Deny-Direktiven berücksichtigt, dann die Allow.
    Allen Clients, deren Hostname im DNS auf .aol.com endet, sowie alle Clients, deren IP-Adresse mit 192.168 beginnt, werden ausgeschlossen; ausgenommen der Client mit der IP-Adresse 192.168.220.102, von dem aus Zugriffe erlaubt werden.

    Siehe Apache-Doku zum Thema.

    So long,
     Martin

    --
    F: Was ist schlimmer: Alzheimer oder Parkinson?
    A: Parkinson. Lieber mal ein Bier vergessen zu zahlen, als eins verschütten.
    1. Moin!

      Order deny,allow

      Deny from .aol.com
      Deny from 192.168
      Allow from 192.168.220.102

      
      >   
      > Bedeutet: Als erstes werden die Deny-Direktiven berücksichtigt, dann die Allow.  
      > Allen Clients, deren Hostname im DNS auf .aol.com endet, sowie alle Clients, deren IP-Adresse mit 192.168 beginnt, werden ausgeschlossen; ausgenommen der Client mit der IP-Adresse 192.168.220.102, von dem aus Zugriffe erlaubt werden.  
        
      Das ist so nicht vollständig erklärt.  
        
      Das LETZTE Keyword im Order-Statement definiert, welche Standard-Einstellung grundsätzlich gilt. Hier ist es "allow", also ist der Zugriff grundsätzlich möglich.  
        
      Der Zugriff wird verboten, wenn eine der als Deny aufgeführten Bedingungen zutrifft, also hier "Hostname endet auf .aol.com" und "IP beginnt mit 192.168".  
        
      Diese Verbotsbedingung tritt aber nur dann in Kraft, wenn nicht noch eine Allow-Bedingung explizit aufgeführt ist - hier für die IP 192.168.220.102.  
        
      Mit diesem dreistufigen Schema kann man also erstens für die Allgemeinheit eine Standardvorgabe machen, diese dann einschränken, und die Einschränkung dann teilweise wieder rückgängig machen. Im Falle von "Order deny,allow" ist der Standard "allow", einzelne Zugriffe werden mit Deny geblockt, und zu großes Deny kann mit Ausnahmen via Allow nochmal feiner definiert werden.  
        
      Umgekehrt hätte "Order allow,deny" zur Folge, dass grundsätzlich erstmal geblockt wird, einzelne Bereiche dann mit Allow Zugriff erhalten, und dieser Zugriff nochmal mit Deny eingeschränkt werden kann.  
        
      Es gibt "Allow from all" bzw. "Deny from all" - das zu benutzen ist aber nicht unbedingt die allerbeste Idee, weil diese Standardeinstellung für "alles" ja bereits durch passendes "Order" bestimmt werden kann. Insgesamt muss man sich sowieso seine Gedanken machen, ob die gewählte Definition das erreicht, was man will.  
        
      Typische Verwendung für "from all" wäre:  
      ~~~apache
      Order deny,allow  
      Deny from all  
      Allow from .intranet.example
      

      Genau dasselbe erhält man mit:

      Order allow,deny  
      Allow from .intranet.example
      

      Im zweiten Beispiel kann man allerdings noch explizit Hosts ausnehmen, die doch keinen Zugriff haben sollen:

      Order allow,deny  
      Allow from .intranet.example  
      Deny from gateway.intranet.example
      

      - Sven Rautenberg

      1. Hallo,

        Order deny,allow

        Deny from .aol.com
        Deny from 192.168
        Allow from 192.168.220.102

        
        > >   
        > > Bedeutet: ...  
        > Das ist so nicht vollständig erklärt.  
          
        könnte daran liegen, dass ich bis eben noch überzeugt war, es sei korrekt. ;-)  
          
        Ich habe jetzt zwar begriffen, wie's tatsächlich gedacht ist, nicht aber, was der Sinn dahinter ist. Die mehrstufige Einschränkung kann man schließlich auch mit mehreren Allow- oder Deny-Direktiven, ggf. mit "from All" erreichen, und dann wäre es meiner Ansicht nach intuitiver.  
          
        Schönen Abend noch,  
         Martin  
        
        -- 
        Ich stehe eigentlich gern früh auf.  
        Außer morgens.  
        
        
        1. Moin!

          Order deny,allow

          Deny from .aol.com
          Deny from 192.168
          Allow from 192.168.220.102

          
          > > >   
          > > > Bedeutet: ...  
          > > Das ist so nicht vollständig erklärt.  
          >   
          > könnte daran liegen, dass ich bis eben noch überzeugt war, es sei korrekt. ;-)  
          >   
          > Ich habe jetzt zwar begriffen, wie's tatsächlich gedacht ist, nicht aber, was der Sinn dahinter ist. Die mehrstufige Einschränkung kann man schließlich auch mit mehreren Allow- oder Deny-Direktiven, ggf. mit "from All" erreichen, und dann wäre es meiner Ansicht nach intuitiver.  
            
          Denk dir Schichten. Mal etwas ASCII-Art:  
            
          ~~~apache
          Order deny,allow  
          Deny from 192.168  
          Allow from 192.168.2  
          Allow from 192.168.3.74
          

          AA   A
              DDDDDDDDDDDDDDDDD
          AAAAAAAAAAAAAAAAAAAAAAAA

          Die unterste Schicht ist der Default, resultierend aus dem Keyword, was bei Order zuletzt steht.

          Diese Schicht wird eingeschränkt durch Definitionen von explizitem Deny. Und diese Definitionen wiederum werden aufgehoben durch Definitionen von explizitem Allow.

          So kannst du Bereiche ausklammern und darin wiederum Bereiche einklammern. Sowas kann man mal haben wollen. Natürlich kann man das auch erreichen, indem man keine drei Schichten verwendet, sondern explizit oberhalb der Allow-Schicht einfach exakt und trennscharf alle Deny-Bereiche angibt. Würde auch funktionieren - wäre aber extrem aufwendig, wenn die einzubauende Ausnahme nicht so nett ins Raster passt.

          - Sven Rautenberg