| Es gibt unterschiedliche Methoden, um bestimmte sensible Bereiche gegen unerwünschten Zugriff zu schützen. | Hier wird die einfache Methode vorgestellt, die der Apache Webserver dazu anbietet. |
Apache
|
Der weltweit erfolgreichste Standard Webserver (Linux, Windows) |
| Live-Demo | Anmeldung für eine geschützte Webseite |
| Zugriffs-Schutz | Viele Varianten sind möglich |
| Geschütztes Verzeichnis | Erstellung von Verzeichnis, Dateien und Links |
| .htpasswd | Zugangs-Datei für Namen und codierte Passworte |
| Codierung | Codierung der Zugangs-Passworte (Live !) |
| Eigener Webserver | Einstellung in der Server Grund-Konfiguration |
| Provider-Webserver | Nachträgliche Live-Einstellung |
| .htaccess | Konfigurations-Datei für ein Verzeichnis |
| Browser | Verhalten, Konfiguration und Probleme |
| Verwandte Themen | SSL-Webserver (HTTPS-Protokoll), Anzeige eigener Fehler-Seiten, diverse Verzeichnis-Tricks |
| Links |
Ausgewählte
|
Live-Anmeldung für eine Webseite mit Zugriffs-Schutz |
|
|
Klicken sie auf die Links, um eine Webseite aus einem geschützten
Bereich anzuzeigen:
Name=test
Passwort=test |
|
|
Name=tgm
Passwort=tgm |
|
Varianten für den Zugriffs-Schutz |
|
|
Es gibt zahlreiche verschiedene Möglichkeiten, um Web-Dokumente gegen
unerwünschten Zugriff zu schützen. ● Die meisten professionellen Lösungen verwenden Datenbanken mit verschlüsselten Zugangs-Daten. ● Einfachere Lösungen lassen sich auch ohne Datenbank mit Server-Programmiersprachen (Perl, PHP, Python, ...) programmieren oder fertig aus dem Internet laden. ● Mit Javascript ist ein sehr einfacher Schutz möglich, lässt sich jedoch leicht knacken, da Javascript-Programme öffentlich sind. |
Fast alle Lösungen erfordern auf Seite der/des AnwenderIn die Eingabe von
Name und Passwort. ● Wenn diese Dokumente mit HTTP angefordert werden, dann erfolgt die Übertragung dieser sensiblen Anmelde-Daten im Klartext. ● Nur mit HTTPS werden zu Zugangsdaten verschlüsselt übertragen. Dabei wird jedoch meist vergessen, dass die angeforderten Dokumente selbst in (HTML)-Klartext gesendet werden. |
|
●
Die hier vorgestellte Lösung erfordert einen (Apache) Webserver. ♥ Es ist sehr ratsam, zumindest zu Testzwecken einen Webserver am eigenen Server oder Arbeits-PC zu installieren (Linux, Windows). |
Es ist sinnvoll, am eigenen Webserver zumindest zu Testzwecken die gleiche Methode zu verwenden. |
Erlaubnis + Zugangsdaten + KonfigurationDie hier vorgestellte Lösung verwendet eine Methode aus 3 Bestandteilen:• Die individuelle Konfiguration wird erlaubt • Die Daten aller User und Passworte werden gespeichert • Die Zugriffs-Rechts auf das geschützte Verzeichnis werden konfiguriert Diese Lösung ist einfach und robust. Sie wird von den meisten Betreibern einfacher Webs verwendet. |
|
Zugangs-Datei .htpasswd |
|
Text-DateiDie Namen und Passworte aller Gruppen und Personen, für welche der Zugang erlaubt werden soll, werden in einer einfachen Text-Datei eingetragen.Wählen sie Name und Pfad möglichst genauso, wie das ihr Web-Provider erwartet. Nur in diesem Fall können sie die Zugangs-Datei und die zusätzlichen Konfigurations-Dateien unverändert auf den Server des Providers laden. Datei-NameDer Name der Zugangs-Datei kann im Prinzip beliebig gewählt werden, z.B. geheim.pwdBesser ist jedoch ein Name, der mit .ht beginnt, weil derartige Dateien sowohl vom Linux Betriebssystem als auch von Apache (in der Standard-Konfiguration) besonders geschützt werden, z.B. .htpasswd Windows hat Probleme mit solchen Datei-Namen: Erzeugen sie zuerst eine Text-Datei htpasswd.txt, öffnen sie eine Konsole cmd.exe und ändern sie den Namen: C:\> rename htpswd.txt .htpswd
Codierung der PassworteDafür stehen mehrere Methoden zur Verfügung (↓ nächstes Kapitel).Das Ergebnis ist im Idealfall eine Textzeile aus User:Passwort, welche direkt in die Apache Zugangs-Datei eingetragen werden kann. |
Datei-PfadDer Pfad kann im Prinzip beliebig gewählt werden. Gute Pfade liegen außerhalb des Server Dokumente-Verzeichnisses und können daher von Web-BesucherInnen nicht erreicht werden. Die meisten Provider bieten innerhalb des Upload-Verzeichnisses getrennte Verzeichnisse für CGI und Web-Dokumente. In diesem Fall wählen sie den Pfad in ihr Upload-Verzeichnis.User & PasswortStellen sie eine Liste von Namen und Passworten jener BesucherInnen auf, welche zu den Dateien des geschützten Verzeichnisses Zugang haben sollen.Die Liste sollte eine überschaubare Anzahl von Zeilen (<10) enthalten. ♣ Meist können mehrere Personen den gleichen Anmelde-Namen verwenden. Wenn die Liste länger ist, dann sollten sie andere Methoden der Zugangs-Kontrolle (Datenbank) verwenden. Eine Live-Änderung der Passworte durch die AnwenderInnen ist in dieser einfachen Form nicht vorgesehen ! Die User-Namen werden in Klartext eingetragen. Diese Namen können frei erfunden werden. Sie stehen in keinem Zusammenhang mit irgendwelchen anderen Namen, z.B. User-Namen am Betriebssystem, etc. Die Passworte werden verschlüsselt (↓ nächstes Kapitel). Als Trennzeichen wird ein : Doppelpunkt verwendet. Beispiel: test:$apr1$AW......$lJM9d6hSAajKRME5RxLwc/
|
Passwort-Codierung |
|||
CodierungDie Passworte einer Apache Zugangs-Datei lassen sich auf mehrere unterschiedliche Arten codieren..Allen Methoden gemeinsam ist die Einweg-Codierung (Hashing): Der Codier-Algorithmus ist nicht umkehrbar. Das codierte Passwort lässt sich mit vernünftigem Aufwand nicht decodieren. Wenn ein Passwort vergessen wurde, dann muss ein neues codiert werden. Die Sicherheit ist relativ hoch: Für halbwegs "zufällige" Passworte gibt es >10E+16 verschiedene Möglichkeiten. Das ist für die Computer von Geheimdiensten kein Problem, im normalen geschäftlichen und privaten Verkehr jedoch sicher. |
BewertungBei der Auswahl der Codier-Methode können sie nach eigenem Ermessen folgende Eigenschaften bewerten:• Herstellung mit eigenen Mitteln: Sie sollten jederzeit in der Lage sein, ohne fremde Hilfe neue Passworte zu codieren. • Verwendung am Provider-PC: Die Codierung sollte am PC+Apache ihres Web-Providers verwendbar sein. Das ist in der Praxis meist ein Linux-PC, dort sind zum Glück die meisten Varianten einsetzbar. Nur ein Live-Test kann diese Bedingung bestätigen ! • System-unabhängig: Auf Windows+Apache sind wesentlich weniger Varianten verfügbar. Ursache dürfte die Konfiguration von Windows sein, wo man den KundInnen 'zur eigenen Sicherheit' einige Bibliotheken zur Verschlüsselung vorenthält. • Reproduzierbarer Code: Nur einige der vorgestellten Methoden erzeugen aus einem Passwort jedesmal den gleichen Code. Das ist von Bedeutung, wenn man mit einem eigenen Programm (PHP, Perl, Python, ..) ein Passwort mit seinem gespeicherten Code vergleichen will. |
||
Experimentelle DatenAlle hier vorgestellten Methoden der Passwort-Codierung wurden im Experiment getestet.Es ist sehr wahrscheinlich, dass die Ergebnisse unter anderen Bedingungen zumindest teilweise anders ausfallen:
Betriebssystem und -Version, Apache-Version, Programmiersprache und -Version usw.
|
Keine Gewähr !Es gibt daher keine Gewähr für die Richigkeit oder Reproduzierbarkeit der Angaben. Genau umgekehrt sollten sie die Methode ihrer Wahl selbst Live testen und bewerten.Betrachten sie die vorgestellten Varianten als Anregung. |
||
Linux-Programm htpasswd2In allen professionellen Linux Distributionen werden zusammen mit dem Apache Webserver auch einige Hilfsprogramme installiert.Sie finden das Programm htpasswd oder htpasswd2 meistens hier: /usr/sbin/htpasswd2
So wird die integrierte Hilfe angezeigt:
# htpasswd2 -h
# man htpasswd2 # info htpasswd2 So erzeugt man im home-Verzeichnis von User ich eine Zugangs-Datei pass.txt und trägt den User franz mit Passwort geheim ein: # htpasswd2 -bc /home/ich/pass.txt franz geheim
So trägt man in die Datei weitere User ein, z.B. sigrid
mit Passwort secret
# htpasswd2 -b /home/ich/pass.txt sigrid secret
Typisches Ergebnis:
franz:$apr1$znQUC/..$XlRU4JZH852xcS1G487LC/
Ändern sie den Datei-Namen auf .htpasswd und verschieben sie die Datei in das passende Verzeichnis. Der 37-Zeichen Code kann auf Linux+Apache und Windows+Apache verwendet werden und ist nicht reproduzierbar: Jede Ausführung erzeugt einen anderen Code |
Windows-Programm htpasswdIn der Windows-Version der Apache-Distribution ist das Programm htpasswd.exe enthalten. Es befindet sich normalerweise hier:C:\Programme\Apache Software Foundation/Apache*/bin/htpasswd.exe
So wird die integrierte Hilfe angezeigt (Pfad abgekürzt):
C:\..\bin> htpasswd /?
So erzeugt man im gleichen Verzeichnis eine Zugangs-Datei pass.txt und trägt den User franz mit Passwort geheim ein: C:\..\bin> htpasswd -bc pass.txt franz geheim
So trägt man in die bestehende Datei weitere User ein,
z.B. sigrid mit Passwort secret
C:\..\bin> htpasswd -b pass.pwd sigrid secret
Ändern sie den Datei-Namen auf .htpasswd
C:\..\bin> rename pass.txt .htpasswd
und verschieben sie die Datei in das passende Verzeichnis.Die Änderung des Datei-Namens kann nur in der Konsole ausgeführt werden ! Der 37-Zeichen Code kann auf Linux+Apache und Windows-Apache verwendet werden, und ist nicht reproduzierbar: Jede Ausführung erzeugt einen anderen Code. |
||
Linux-Programm htpasswd2 / SHADas Programm htpasswd2 erzeugt auf Wunsch SHA-Code.# htpasswd2 -bs /home/ich/pass.txt franz geheim
Typische Ergebnis: franz:{SHA}kGByAB793z4R5tK1eC9Hd/4Dhzk=
Der 33-Zeichen Code kann auf Linux+Apache und Windows+Apache verwendet werden und ist reproduzierbar: Jede Ausführung erzeugt den gleichen Code. |
Linux-Programm htpasswd2 / CRYPTDas Programm htpasswd2 erzeugt auf Wunsch CRYPT-Code:# htpasswd2 -bd /home/ich/pass.txt franz geheim
Typisches Ergebnis: franz:AQPOeZm2PfbxI
Der 13-Zeichen Code kann nur auf Linux+Apache verwendet werden und ist nicht reproduzierbar: Jede Ausführung erzeugt einen anderen Code. |
||
Perl oder PHP crypt mit salt="$1"Die Programmiersprachen Perl und PHP sind sowohl auf Linux als auch auf Windows einsetzbar. Beide bieten die Funktion cryptSie codiert je nach angewendeter Variante und Betriebssystem teilweise unterschiedlich. Hier wird die Anwendung als Konsolen-Programm (CLI) vorgestellt. Die Ergebnisse sind in anderer Form (z.B. als dynamische Webseite) identisch. Folgende Varianten liefern reproduzierbare identische Ergebnisse: Linux
# perl -e 'crypt("geheim","\$1")'
Windows
# php -r 'print crypt("geheim","$1")."\n"' C:\> php -r "print crypt('test','$1')"
Typisches Ergebnis: franz:$1$$ZxI4u66NDZqJxLyzc7bpi/
Der 26-Zeichen Code kann nur auf Linux+Apache verwendet werden und ist reproduzierbar: Jede Ausführung erzeugt den gleichen Code. Das funktioniert gleichartig mit salt=$1$ oder mit 1..8 weiteren Zeichen nach $1$ |
PHP crypt ohne saltDie Programmiersprache PHP ist auf Linux oder Windows einsetzbar und bietet die Funktion cryptAnwendung auf Linux: # php -r 'print crypt("test")."\n"'
Windows
C:\> php -r "print crypt('test')"
Typische Ergebnis: franz:$1$2k4.hL4.$oJYVrwXDeDdEnaltmS7LN/
Der 34-Zeichen Code kann nur auf Linux+Apache verwendet werden und ist nicht reproduzierbar: Jede Ausführung erzeugt einen anderen Code. |
||
Linux-PHP crypt mit salt="a"Die PHP-Funktion crypt kann als 2. Argument salt Strings aus 1 oder 2 Zeichen verwenden. Hier wird als salt das Zeichen a verwendet.Die Ergebnisse sind reproduzierbar, jedoch auf Linux und Windows unterschiedlich. Das kann allerdings auch an der PHP-Variante liegen, die beim Test nicht genau identisch war. Nur die Linux-Variante war verwendbar: # php -r 'print crypt("geheim","a")."\n"'
Typisches Ergebnis: franz:a$fN/NQ5omORk
Der 13-Zeichen Code kann nur mit Linux+PHP erzeugt und auf Linux+Apache verwendet werden. Er ist reproduzierbar, d.h. jede Ausführung erzeugt den gleichen Code. |
Nicht verwendbarFolgende Programmiersprachen-Varianten konnten auf keiner Apache-Version verwendet werden:PHP-Funktion md5 liefert reproduzierbare identische Ergebnisse von 32 Zeichen auf Linux oder Windows:
# php -r 'print md5("test")."\n"'
Ergebnis:
C:\> php -r "print md5('test')" franz:e8636ea013e682faf61f56ce1cb1ab5c
Perl-Funktion crypt mit salt="a" und Windows-PHP crypt mit salt="a" liefern reproduzierbare, jedoch jeweils unterschiedliche und mit Apache nicht verwendbare Ergebnisse von 13 Zeichen. |
||
Online SelfHTMLh4>
|
Online PHPbbPHPbb bietet auf der Seitehttp://www.phpbb.de/diverses/htpasswd.php die Live-Codierung eigener Passworte. Es werden nicht reproduzierbare 34-Zeichen Codes dieser Form erzeugt: franz:$1$Z3MO7GKM$MNF1f1KU7Io6yXcEoQJaq.
die nur auf Linux+Apache verwendbar sind.
|
||
|
Formular (↓ nächster Absatz) Geben sie Name und Passwort in das Formular (nächster Absatz unten) ein. Damit wird eine Text-Zeile (blaue Schrift) erzeugt, welche man direkt in eine Apache Name- und Passwort-Datei eintragen kann. |
Die Codierung kann mit unterschiedlichen Werten für "salt" (Salz) durchgeführt werden. In diesem Web werden für jede Anwendung neue Zufalls-Werte für salt verwendet, daher wird auch bei gleichbleibenden Daten jedesmal ein anderer Code erzeugt. |
||
|
|||
Eigener Webserver |
|
|
Am eigenen Server haben sie vollen Zugriff auf die Konfiguration des Webservers.
Das Beispiel rechts zeigt, wie man ein geschütztes Verzeichnis
(secret) für einen angemeldeten User
(test) freigibt. • AllowOverride verbietet jede Änderung der Apache Konfiguration durch .htaccess Dateien. • AuthUserFile definiert den Pfad zur Zugangs-Datei • AuthName definiert einen beliebigen, jedoch eindeutigen Namen für diesen Zugriffs-Bereich. • Require legt den Namen derjenigen User fest, welche nach korrekter Anmeldung Zugang haben. |
<Directory "/srv/www/htdocs/secret">
AllowOverride None
</Directory>
AuthUserFile /srv/www/htdocs/.htpasswd AuthName Geheim AuthType Basic Require user test |
|
Wenn mehrere User Zugriff haben sollen, dann werden ihre Namen durch Leerzeichen getrennt:
Require user test gast franz anna
Zugang für alle in der
Zugangs-Datei eingetragenen User:
Require valid-user
Auf Windows bezeichnen sie den Pfad zum geschützten Verzeichnis z.B. mit <Directory C:/Web/htdocs/secret>
Als Pfad-Separator kann ein / Zeichen verwendet werden.
|
♣ Tipp: Nach dieser Methode sollten sie den Zugriffs-Schutz nur für jenen Teil der Dokumente einrichten, die ausschließlich im lokalen Netzwerk (LAN) verwendet werden. ♣ Jene Dokumente, die für den späteren Upload auf den Server eines Web-Providers bestimmt sind, werden besser nach der Methode für Provider (nächstes Kapitel) konfiguriert. |
|
►
Nach Neustart des Webservers tritt die Konfiguration in Kraft. Danach ist der Zugang
zum geschützten Verzeichnis nur nach korrekter Anmeldung möglich. • Für diese Methode werden ausdrücklich keine .htaccess Dateien (nächstes Kapitel) verwendet. |
►
Starten sie zu jedem Test den Browser neu, denn ein Browser zeigt nur beim
ersten Versuch das Anmelde-Fenster und öffnet geschützte
Dokumente bei allem weiteren Versuchen ohne erneute Anmeldung. ▼ Wenn ihr Server die mit AuthUserFile angegebene Datei nicht findet oder nicht lesen kann, dann wird normalerweise HTTP Fehler-Code 500 angegeben. |
Provider-Webserver |
|
|
Am Server eines Web-Providers haben sie natürlich keinen Zugang zur
Konfiguration. Apache bietet für solche Zwecke die Möglichkeit, die
Konfiguration für jedes einzelne Verzeichnis Live (zur Ausführungszeit)
zu ändern. Das wird u.a. für
eigene →
Fehler-Webseiten und für die Zugangs-Kontrolle verwendet. Wenn diese Option in der Apache Konfiguration zugelassen wurde (Beispiel rechts), dann sucht Apache in jedem Verzeichnis nach einer Text-Datei mit dem Namen .htaccess Der Inhalt dieser Datei besteht aus Konfigurations-Anweisungen für Apache. Sie werden genauso interpretiert wie in der Grund-Konfiguration. Die .htaccess Anweisungen gelten für alle Dateien im jeweiligen Verzeichnis und in allen Unter-Verzeichnissen. |
●
Die individuelle Änderung der Konfiguration durch
.htaccess Dateien ist normalerweise verboten. ● So wird die Änderung für ein bestimmtes Verzeichnis erlaubt:
<Directory /srv/www/htdocs/secret>
Diese Konfiguration tritt nach Neustart des Webservers in Kraft.AllowOverride AuthConfig
</Directory>
Der gesamte Webspace von Provider-Kunden ist normalerweise so konfiguriert. In diesem Fall kann jeder Kunde die gewünschten Zugangsrechte einstellen, einfach indem eine entsprechend formulierte Datei .htaccess in ein Verzeichnis geladen wird. Damit wird das betreffende Verzeichnis und alle seine Unter-Verzeichnisse konfiguriert. • Dieser Komfort wird durch Mehr-Arbeit des Servers erkauft: Apache sucht in jedem Verzeichnis nach der .htaccess Datei und liest sie bei jeder einzelnen Anforderung ! |
Apache KonfigurationDie Apache Grund-Konfiguration ist am eigenen Server zugänglich, am Server des Web-Providers nicht. Einige Anweisungen beeinflussen das Verhalten von .htaccess● Name der Datei für Zugangs-Kontrolle: AccessFileName .htaccess
Ändern sie diesen Namen nur dann,
wenn ihr Web-Provider einen anderen Datei-Namen verwendet.● Dateien dieses Namens werden nicht angezeigt:
<FilesMatch "^\.ht">
Damit wird unterbunden, dass irgend eine durch den
RegExp-Ausdruck betroffene Datei (Name beginnt mit .ht)
von einem Client (Browser) angezeigt wird. Das dient zum Schutz dieser Dateien.
Order allow,deny
</FilesMatch>
Deny from all |
● Erlaubnis zur Live-Änderung der Konfiguration
<Directory /home/test>
Anweisung AllowOverride regelt die Möglichkeiten
zur (nachträglichen) Live-Konfiguration.
AllowOverride AuthConfig
</Directory>
# AllowOverride All
• Die Reichweite umfasst alle Dateien des angegebenen Verzeichnisses und seiner Unter-Verzeichnissse. • Normalerweise wird diese Option zunächst einmal für alle Verzeichnisse mit AllowOverride None verboten. Erst danach wird die Option für ausgewählte Verzeichnisse freigegeben. • Im Beispiel wird die Option für das private Verzeichnis des Users test freigegeben (Typisch für einen Web-Provider). Am eigenen Server verwenden sie diese Option für jene Webseiten, die zum Provider hochgeladen werden, nicht jedoch für Webseiten, die nur im eigenen lokalen Netzwerk verwendet werden. |
|
Mit den oben vorgestellten Maßnahmen wird die Zugriffs-Kontrolle lediglich
vorbereitet. • Wenn diese Vorbereitungen ausgeführt sind, dann sind die Dokumente im geschützten Verzeichnis noch immer frei zugänglich, so wie alle anderen Webseiten. |
• Damit der vorbereitete Schutz in Kraft gesetzt wird, muss noch eine Konfigurations-Datei .htaccess erzeugt und konfiguriert werden (↓ nächstes Kapitel). |
Konfigurations-Datei .htaccess |
|
|
Eine oder mehere Dateien mit dem Namen .htaccess
sorgen für die nachträgliche Live-Konfiguration eines dafür
eingerichteten Apache Webservers. Damit das funktioniert, müssen alle oben
vorgestellten Voraussetzungen erfüllt sein: • Erzeugung eines zu schützenden Verzeichnisses inkl. Dateien und Links dorthin • Erzeugung der Zugangs-Datei .htpasswd • Freigabe der nachträglichen Konfiguration mit der Anweisung AllowOverride |
Nun fehlt noch die Aktivierung der vorbereiteten Möglichkeiten. Dazu wird eine Konfigurations-Datei .htaccess erzeugt, konfiguriert und in den richtigen Pfad geladen. ♣ Tipp: Auf Linux ist fast jeder Text-Editor geeignet. Auf Windows hat sich Notepad++ (NPP) besonders bewährt. Damit kann man u.a. auch Text-Dateien Linux ↔ Windows korrekt umwandeln. |
Datei-NameDer Name der Konfigurations-Datei muss genau mit jenem Namen übereinstimmen, welcher in dieser Anweisung der Grund-Konfiguration festgelegt wurde: Standard istAccessFileName .htaccess
Sie sollten am eigenen Server den Datei-Namen .htaccess in dieser Anweisung nur dann ändern, wenn ihr Web-Provider einen anderen Namen verwendet. |
Windows hat Probleme mit solchen Datei-Namen. Daher 2 alternative Tricks: • Erzeugen sie die Datei auf Linux und kopieren sie auf Windows. • Erzeugen sie auf Windows eine Text-Datei htaccess.txt Starten sie eine Konsole cmd.exe und ändern sie den Datei-Namen: C:\> rename htaccess.txt .htaccess
|
Datei-PfadDer Pfad ist ebenfalls vorgegeben - Die Datei kommt in das zu schützende Verzeichnis, z.B.
/srv/www/htdocs/secret/.htaccess
Die eingestellte Konfiguration gilt ebenso für alle im geschützten Verzeichnis
(secret) enthaltenen Unter-Verzeichnisse.
C:\Web\htdocs\secret\.htaccess |
Es ist möglich, mehrere Verzeichnisse mit je einer eigenen .htaccess Datei zu konfigurieren. Bedingung ist lediglich, dass die nachträgliche Konfiguration für das berteffende Verzeichnis mit einer Anweisung AllowOverride (Kapitel oben) erlaubt wurde. |
InhaltRechts ein Beispiel für eine .htaccess Datei am eigenen Server.• AuthType Basic ist derzeit die einzige Form dieser Anweisung. • AuthName ist ein frei wählbarer Name für den geschützten Bereich, muss jedoch einzigartig sein. Wenn sie mehrere geschützte Bereiche definieren, erhält jeder einen eigenen Namen. Verwenden sie nur Buchstaben, Ziffern und _ Underline. • Require definiert die zugelassenen User. Sie werden einzeln namentlich angeführt oder mit valid-user alle User, die sich korrekt anmelden. |
Beispiel für eine Text-Datei .htaccess
AuthType Basic
AuthName "Geheim" AuthUserFile /srv/www/.htpasswd Require valid-user |
|
Pfad
AuthUserFile definiert den Pfad zur Zugangs-Datei.
Normalerweise (und am eigenen Server) wird der absolute Pfad verwendet.
|
Ein relativer Pfad orientiert sich am Apache Programm-(!)-Verzeichnis
ServerRoot Beispiel: AuthUserFile "/.htpasswd"
bezeichnet auf Windows den Pfad
C:\Programme\..\Apache2.2\.htpasswd
|
|
Provider
•
Am Server des Providers ist ein relativer Pfad nicht verwendbar,
weil man dort als Kunde keinen Zugriff hat.• Man muss daher den absoluten Pfad zu den eigenen Dateien kennen und angeben. • Dieser Pfad führt meistens in das /home/username Verzeichnis des (Linux)-Servers (Beispiel rechts) • Falls das nicht funktioniert, muss man die Information vom Provider einholen. |
Beispiel für eine Datei .htaccess
AuthType Basic
In diesem Fall sind alle (in der Datei .htpasswd)
eingetragenen User zugelassen.AuthName "Geheim" AuthUserFile /home/domain.at/.htpasswd Require valid-user • Wenn nur bestimmte User zugelassen sind, dann werden ihre Namen einzeln angeführt (durch Leerzeichen getrennt):
Require user admin test gast
|
| Damit ist der Zugang zum geschützten Verzeichnis fertig konfiguriert und kann getestet werden. | ► Starten sie zu jedem Test den Browser neu, denn ein Browser zeigt nur beim ersten Versuch das Anmelde-Fenster und öffnet geschützte Dokumente bei allem weiteren Versuchen ohne erneute Anmeldung. |
SatisfyDiese Anweisung regelt das Verhalten, wenn mehrere Bedingungen eingetragen sind.ODER-Verknüpfung
Der Zugang wird erlaubt, wenn mindestens eine der Bedingungen erfüllt ist
(Beispiel rechts)
Satisfy Any
UND-Verknüpfung
In diesem Fall müssen alle eingetragenen Bedingungen erfüllt werden:
Satisfy All
|
# Alles verboten
Order Deny,Allow
Deny from All # Ohne Anmeldung erlaubt für diesen Bereich
Allow from 84.114.180.0/255.255.255.0
# Erlaubt mit Anmeldung
AuthType Basic
AuthName "Test" AuthUserFile /srv/www/htdocs/.htpasswd Require user test # Eine der 2 Bedingungen genuegt
Satisfy Any
|
Browser |
|
|
Wenn ein Dokument aus einem geschützten Verzeichnis angefordert wird, dann sendet
der Webserver jedesmal den
HTTP Status Code 000. ● Ein Browser reagiert darauf nur beim ersten Mal durch Öffnen des Anmelde-Fensters (Name / Passwort). ● In jedem weiteren Fall sendet der Browser automatisch die ihm bereits bekannten Zugangs-Daten, damit wird die gewünschte Datei vom Server geliefert - ohne merkbare Verzögerung und ohne weitere Anmeldung. |
Dieses Verhalten sollten sie insbesondere bei einem Test berücksichtigen: ♣ Öffnen sie für jeden Test der Zugangs-Konfiguration ein neues Browser-Fenster und schließen sie das Fenster nach dem Test wieder. Ansonsten besteht die Gefahr einer falschen Interpretation - Sie bemerken nicht, ob ihr Browser bereits gespeicherte Zugangs-Daten sendet. |
Gespeicherte Zugangs-DatenDas wird nicht empfohlen, da man an ihrem PC jederzeit eine der besuchten geschützten Webseiten anfordern kann (ihre Surf-History ist ja gespeichert) und ihr Browser dann automatisch und unbemerkt die Zugangs-Daten (im Klartext) sendet. |
Man muss das Browser-Fenster schließen und den Browser neu starten - oder einen der wesentlich besseren modernen Browser verwenden. |
|
Kontrolle: Besuchen sie eine geschützte Webseite, löschen sie die Zugangs-Daten und fordern sie die Seite neu an: Sie können beruhigt sein, wenn erneut das Anmelde-Fenster geöffnet wird. |
Erst in einem neuen Browser-Fenster sind ihre angeblich gelöschten Anmelde-Daten wirklich vergessen - Außer wenn sie den Browser so konfiguriert haben, dass er sich die Daten merkt. Geheimdienste, Hacker, Verbrecher und neuerdings auch die Polizei freuen sich über gespeicherte Daten aller Art... |
|
|
|
Hier kann man htpasswd.exe laden: http://www.derwok.de/faq/htpasswd.exe SelfHTML PS-Trainer |
todo <Limit GET> |
|
|