RobRobson: Apache Dateizugriff verhindern klappt nicht

Hallo allen und ein schönes Weihnachtsfest, hoffe die Geschenke haben gefallen und der Schädel ist nicht ganz so dick vom Glühwein ;)

Die Probleme bleiben aber auch am Feiertag nicht aus.

Apache verwendet die Direktive:

<Files ~ "^\.ht">  
    Order allow,deny  
    Deny from all  
</Files>

um den Zugriff auf .htaccess Dateien zu verbieten.
Diesen Schutz will ich für mich benutzen um den Zugriff auf *.inc Dateien zu unterbinden, dafür hab ich versucht die Direktive umzuschreiben:

  
<Files ~ "\.inc$">  
    Order allow,deny  
    Deny from all  
</Files>

Leider bin ich nicht versiert mit regex. Und *.inc Dateien werden weiterhin beim eingeben in die Adresszeile flach ausgegeben.

.htaccess Schutz hab ich auch schon versucht, klappt aber bei diesem Verzeichnis nicht. Der Ordner wird nicht angezeigt ("You don't have permission to access /.../include/ on this server.") Aber "/.../include/db.inc" wird trozdem weiterhin ohne zu zögern angezeigt.

Ist mein regex falsch oder was erzeugt dieses Verhalten?
Danke und Viele Grüße,
Rob

  1. Hello,

    Die Probleme bleiben aber auch am Feiertag nicht aus.

    Apache verwendet die Direktive:

    <Files ~ "^.ht">

    Order allow,deny
        Deny from all
    </Files>

    
    >   
    > um den Zugriff auf .htaccess Dateien zu verbieten.  
      
    Stimmt.  
      
    
    > Diesen Schutz will ich für mich benutzen um den Zugriff auf \*.inc Dateien zu unterbinden, dafür hab ich versucht die Direktive umzuschreiben:  
    >   
    > ~~~javascript
      
    
    > <Files ~ "\.inc$">  
    >     Order allow,deny  
    >     Deny from all  
    > </Files>
    
    

    Leider bin ich nicht versiert mit regex. Und *.inc Dateien werden weiterhin beim eingeben in die Adresszeile flach ausgegeben.

    Auf den ersten Blick kann ich erstmal keinen Fehler feststellen.
    Du hast den Punkt als normales Zeichen maskiert und durch das Dollarzeichen kenntlich gemacht, dass das Ende des Strings untersucht werden soll.

    Daher meine Fragen:
    Wo hast Du diese Direktive eingegeben?

    • in der apache2-Hauptkonfiguration?
    • in der Konfiguration eines Virtual Host?
    • in einer .htaccess-Datei?

    In den beiden ersten Fällen muss der Parent-Prozess des Apachen neu gestartet werden.

    Alternativ kannst Du die Namen deiner *.inc-Dateien doch auch mit '.ht' beginnen  lassen, dann müsstest Du keine zusätzliche Regel einführen.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hallo Tom und vielen Dank schonmal für die Hilfe,

      Auf den ersten Blick kann ich erstmal keinen Fehler feststellen.
      Du hast den Punkt als normales Zeichen maskiert und durch das Dollarzeichen kenntlich gemacht, dass das Ende des Strings untersucht werden soll.

      ok, schön-

      Daher meine Fragen:
      Wo hast Du diese Direktive eingegeben?

      • in der apache2-Hauptkonfiguration?

      Die apache2.conf lädt die httpd.conf, und in dieser hab ich es abgelegt. Die httpd.conf enthält sogar nur
      den geposteten Inhalt.

      • in der Konfiguration eines Virtual Host?
      • in einer .htaccess-Datei?

      In den beiden ersten Fällen muss der Parent-Prozess des Apachen neu gestartet werden.

      Hab ich. Es wurden keine Fehler angezeigt.

      Alternativ kannst Du die Namen deiner *.inc-Dateien doch auch mit '.ht' beginnen  lassen, dann müsstest Du keine zusätzliche Regel einführen.

      Es soll schon ohne umbennenung ablaufen, da zu viele Dateien betroffen wären.

      Ich verstehe halt überhaupt noch nicht, warum eine .htaccess die in einem benachbarten Ordner wundebar funktioniert, und in den include-Ordner migriert wurde, keine Wirkung zeigt.
      ...
      Ich hab grade in der datei "default" einen Eintrag für "/" von Allow from all auf "Deny from all" geändert. Nun sind keine Zugriffe mehr möglich. Nur noch über die Virtuellen hosts. Soweit so logisch. Aber sind die Rechte der .htaccess im Verzeichnis nicht eigentlich stärker?

      Viele Grüße,
      Rob

      1. Hello,

        Ich verstehe halt überhaupt noch nicht, warum eine .htaccess die in einem benachbarten Ordner wundebar funktioniert, und in den include-Ordner migriert wurde, keine Wirkung zeigt.
        ...
        Ich hab grade in der datei "default" einen Eintrag für "/" von Allow from all auf "Deny from all" geändert. Nun sind keine Zugriffe mehr möglich. Nur noch über die Virtuellen hosts. Soweit so logisch. Aber sind die Rechte der .htaccess im Verzeichnis nicht eigentlich stärker?

        Die müssen überhaupt erstmal erlaubt sein für das Verzeichnis.

        AllowOverride muss für das Verzeichnis passend gesetzt sein
        http://httpd.apache.org/docs/2.2/de/mod/core.html#allowoverride

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
  2. Moin!

    .htaccess Schutz hab ich auch schon versucht, klappt aber bei diesem Verzeichnis nicht. Der Ordner wird nicht angezeigt ("You don't have permission to access /.../include/ on this server.") Aber "/.../include/db.inc" wird trozdem weiterhin ohne zu zögern angezeigt.

    Du hast im Ordner 'include' eine datei .htaccess mit dem Inhalt "deny from all" gehabt und dennoch wurde Dir eine Datei angezeigt?

    Nun denn. Vermutlich war es der Browsercache. Um derlei wirklich zu testen verwende

    wget -d -O - http://....

    Bei Linux kannst Du wget mit den Mitteln der Distribution installieren, für Windows gibt es die UNVERZICHTBAREN Unix-Tools und außerdem bieten viele Browser auch nativ oder mit Erweiterungen die Möglichkeit zu Debuggingzwecken HTTP zu protokollieren und sich die Meldungen anzuschauen.

    Der Cache kann auch "Schuld" sein, dass die Sperrung der Dateien in Deinem ersten Test nur scheinbar nicht funktionierten.

    Tip: Die Unix-Tools direkt ins Windows-Verzeichnis kopieren ...

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix