Verzeichnisse und Dateien mit .htaccess schützen

Nicht alle Ordner und Dateien in Eurem Webverzeichnis sollten für alle Menschen zugänglich sein. Konfigurations- und Debugging-Informationen sollten besser unter Verschluss gehalten werden. Außerdem kann es sehr nervig sein, wenn sich der eine oder andere Crawler nicht um Eure robots.txt schert und trotzdem ungewollt Dateien listet. Wie Ihr den Zugriff auf Ordner- oder auch Datei-Ebene einschränkt, erkläre ich Euch in diesem Artikel.

Zugriff auf Verzeichnisse unterbinden

Um einen bestimmten Ordner vor dem Zugriff Unbefugter zu schützen, müssen wir als erstes eine .htaccess-Datei in dem entsprechenden Ordner erzeugen. Den Zugriff vollständig zu blockieren ist nicht schwer und es reichen hierfür schon zwei Zeilen in Eurer Datei aus:

Order allow,deny
Deny from all

Ihr wollt den Zugriff nicht vollständig einschränken, sondern für bestimmte Personen bzw. Euch selbst erlauben? Dann habt Ihr mehrere Möglichkeiten. Seid Ihr in der glücklichen Situation eine feste IP-Adresse zu besitzen, könnt Ihr den Zugang einfach auf diese IP beschränken.

Order allow,deny
Allow from 123.123.123.123

Leider habe ich keine feste IP und verlasse mich deshalb auf den Schutz via .htpasswd-Datei. Hierfür müsst Ihr zusätzlich eine .htpasswd-Datei irgendwo auf Eurem Server platzieren. Am besten wählt Ihr einen Ordner der außerhalb Eures Webroots liegt. Um Euch die erforderlichen Codezeilen zu erzeugen könnt Ihr freie htpasswd-Generatoren im Netz verwenden. Folgender Code muss in der .htaccess-Datei platziert werden. Die oben beschriebenen Anweisungen sind dann nicht mehr notwendig und sollten gelöscht werden.

AuthUserFile /pfad/zu/eurer/.htpasswd
AuthGroupFile /dev/null
AuthName "Password Protected Area"
AuthType Basic

<limit GET POST> 
  require valid-user 
</limit>

Platziert die generierte Benutzername-Passwort-Kombination in Eurer .htpasswd-Datei. Eine einzelne .htpasswd-Datei kann von mehreren .htaccess-Anweisungen verwendet werden. In einer .htpasswd-Datei können außerdem mehrere Zugangsdaten stehen. Pro Zeile könnt Ihr ein Benutzer-Passwort-Paar definieren:

demo:devFxxVFZsuos
admin:adpexzg3FUZAk

Vorsicht: Verwendet Ihr die obigen Passwortdaten in Eurer eigenen .htpasswd-Datei, stirbt irgendwo ein Kätzchen.

Zugriff auf einzelne Dateien oder Dateitypen unterbinden

Anstatt den Zugriff auf ganze Ordner zu unterbinden, kann es sinnvoll sein stattdessen nur bestimmte Dateien zu schützen. Folgende Codezeilen in Eurer .htaccess verhindern, dass die Datei geheim.pdf aufgerufen werden kann:

<FilesMatch "(geheim.pdf)$">
Order allow,deny
Deny from all
</FilesMatch>

Mehrere Dateien können mit | getrennt angegeben werden. Außerdem könnt Ihr natürlich auch bestimmte Dateitypen sperren, in diesem Fall sperren wir den Zugang für alle pdf- & zip-Dateien:

<FilesMatch "(.pdf|.zip)$">
Order allow,deny
Deny from all
</FilesMatch>

Natürlich könnt Ihr, wie oben bereits erwähnt, den Zugriff auch für bestimmte IP-Adressen erlauben oder aber eine .htpasswd-Datei verwenden. Grundsätzlich sollte man aber "geheime" Dateien nur dann im Internet platzieren, wenn man die NSA glücklich machen möchte oder es aus anderen Gründen nicht anders geht. Ich hoffe für letzteren Fall konnte ich Euch ein paar Instrumente an die Hand geben.

Noch keine Kommentare vorhanden.