Mit .htaccess kan der Zugriff auf Ordner bzw. Websiten relativ sicher beschränkt werden. Die notwendigen Dateien sind schnell und einfach erstellt. Ich empfehle diesen Schutz für den beschriebenen Webmailer.
Voraussetzung für einen Passwortschutz mit .htaccess ist ein Webspace, der die Verwendung von .htaccess erlaubt. Bei den meisten kostenpflichtigen Anbietern ist das jedoch der Fall.
Um einen Ordner auf dem Webspace mit einem passwortgeschützten Zugriff zu versorgen, müssen zwei Dateien angelegt werden und in den Ordner kopiert werden, der geschützt werden soll.
- Dateiname (auf den Punkt vor dem Namen achten): .htaccess
- Dateiname (auf den Punkt vor dem Namen achten): .htpasswd
Inhaltlich sehen diese beiden Dateien so aus, wobei man mit .htaccess natürlich noch mehr machen kann und dies hier nur ein Beispiel ist:
- .htaccess
# Kommentar AuthUserFile /www/htdocs/12345/ordner/Adresse zur Passwortdatei/.htpasswd AuthGroupFile /www/htdocs/12345/ordner/Adresse zur Passwortdatei/.htgroups AuthName "Password Protected Area" AuthType Basic require user Frank Peter Heinz require group Admin User <limit GET POST> require valid-user </limit>
- Mit Raute
#
lassen sich Kommentare in der Datei hinterlegen. AuthUserFile
gibt den Verweis zum Passwort-File an. Hier muss der absolute Pfad vom Server angegeben werden. Mit einer URL ist hier nichts zu erreichen. Den absoluten Pfad kann man mit Hilfe von php recht einfach heraus bekommen:<?php echo $_SERVER['DOCUMENT_ROOT']; ?>
Tragt diese Zeile in eine php-Datei und ladet sie in den entsprechenden Ordner auf dem gewünschten Webspace. In der Ausgabe der Seite steht dann die absolute Adresse.
AuthGroupFile
ist nicht nötig, kann aber verwendet werden, wenn viele Usergruppen auf den geschützten Webspace zugreifen sollen und man nicht jeden einzelnen User einarbeiten will.AuthName
beinhaltet den Text, der dann im Eingabefenster erscheint. Hier bietet sich eine Beschreibung an, die den geschützten Bereich näher erläutert.AuthType
sollte unverändert bleiben und beschreibt die Authentifizierung, das Ident, der Passwortdatei.- Mit
require user
werden die User bestimmt, die einen Zugang haben. Diese Zeile ist nicht unbedingt notwendig. Die Usernamen und die zugehörigen Passwörter stehen in der .htpasswd. - Bei der Verwendung von Usergruppen und AuthGroupFile (.htgroups) ist
require user
notwendig und enthält die berechtigten User. <limit GET POST>
ist die Zugriffsberechtigung. In diesem Fall wird nur Post für zugelassene User erlaubt. Dies kann erweitert werden, beispielsweise für GET oder DELETE.
- Mit Raute
- .htpasswd
Benutzername:Passwort(codiert)
In der Passwortdatei stehen die Usernamen und ihre zugehörigen Passwörter, welches verschlüsselt ist. Der Doppelpunkt fungiert als Trennungszeichen. Alle User werden untereinander geschrieben. Die verschlüsselten Passwörter lassen sich mit Hilfe von Online-Tools sehr schnell erstellen.
Online-Tools und weiterführende Links:
- Passwortgenerator - http://www.xs4all.nl/~remcovz/htpasswd.html
- .htaccess Generator - http://www.webmaster-toolkit.com/htaccess-generator.shtml
- Alle Direktive der Apache-config - http://httpd.apache.org/docs/1.3/mod/directives.html
- Mehr zu Usergruppenverwaltung mit AuthGroupFile - http://buecher.lingoworld.de/apache2/showdir.php?id=466&o=date
- .htaccess Cheat Sheet - http://www.thejackol.com/htaccess-cheatsheet/
- Noch mehr Möglichkeiten mit .htaccess - http://www.jacomet.ch/topweb/htaccess.htm
- Doku selfhtml - http://de.selfhtml.org/servercgi/server/htaccess.htm
Hier empfehle ich ein simples Tool – das diese Arbeit abnimmt:
HTGen 1.0
-> http://svera-tools.de/download.php?id=16
In der Verzeichnis, die der der Schutz rein soll, eine info.php mit kopieren; aufrufen; Webserver-Pfad heraussuchen und in HTGen einfügen – Dateien erzeugen, auf Webserver spielen und fertig 😉
Hallo Frank,
mir ist aufgefallen,dass viele user – auch du – ihre Verzeichnisse (z.B. Plugins; also https://bueltge.de/wp-content/plugins/ ) schützen. Dann kommt die Meldung: „Forbidden
You don’t have permission to access /wp-content/plugins/ on this server.“
Ich bekomme das aber nicht hin. Wenn ich das Verzeichnis schützen will, kann ich die Plugins gar nicht mehr benutzen. Sie funktionieren dann nicht mehr.
Kannst du mir da weiterhelfen? Ich mache da wohl einiges falsch.
Vielen Dank
Volker
Hallo Volker,
den einzigen „Schutz“, denn ich hinzerlege, ist eine robots.txt – die im Root liegt und die Suchmaschinen aussprerrt.
Hallo noch einmal,
aber wie kommt es dann, dass man auf mein PLUGIN Verzeichnis dann zugreifen kann und bei dir eine Meldung kommt? (Forbidden
You don’t have permission to access /wp-content/plugins/ on this server.)
Das verstehe ich jetzt überhaupt nicht?
Ich denke mal, dass mein Webhoster alle Verzeichnisse, die nicht über eine index.* verfügen als „Forbidden“ ausgibt.
Guten Morgen,
ahh..das macht Sinn. Ich kann mich ja mal mit meinem Webhoster in Verbindung setzen. Habe es jetzt vorher so gelöst, dass nur eine weiße index- Seite erscheint.
Klappt auch ..
Vielen Dank für die Infos. Da hätte ich ja noch lange Suchen können 🙄