Suche nach als

Passwort und Schutz

Auf dieser Seite:

Möchte ich eine Datei oder einen Ordner auf dem Server nicht der Öffentlichkeit zugänglich machen, dann kann ich einen Passwortschutz einrichten, welcher ebenfalls durch die .htaccess-Datei gesteuert wird. Auch Spamm-Roboter und Spiders kommen nicht rein.

Passwort für Ordner

Dateien welche mit .ht beginnen werden schon per Grundeinstellung vom System auf keinem Browser angezeigt.

Wie kann ich verhindern, dass die Inhalte von Dateien in einem bestimmten Ordner durch den Browser angezeigt werden können?
Der Hoster stellt oft ein User-Interface zur Verfügung, welches die Einrichtung eines Passwortschutzes erleichtert, aber ich kann das auch von Hand einrichten, wenn der Hoster es erlaubt.
Zwei .ht-Dateien sind nötig: die .htaccess in welcher wir die Einschränkungen definieren und den Pfad zur Datei .htusers angeben, in welcher dann die verschlüsselten Passworte liegen.

Der zu schützende Ordner soll 'lehrling' heissen, einen solchen lege ich also an.

In den zu schützenden Ordner kommt eine reine Script-Datei (also Text ohne Formatierungen) mit dem Namen .htaccess (vor dem Punkt steht nichts).
In die Datei schreibe ich folgendes:

# .htaccess-Datei für den lehrling-Ordner
AuthType Basic
AuthName "Lehrling Bereich"
AuthUserFile /home/ordner/ordner/lehrling/.htusers
require user lehrling

AuthType Basic

- #: ist ein Kommentar
- AuthType Basic: Zugangsdaten werden unverschlüsselt vom Browser an den Server geschickt - AuthName: ein frei wählbarer Name angegeben, welcher dann auf der Passwortabfrage erscheint.
- require user: gibt zulässige Benutzernahmen an (mehrere werden durch Leerschläge getrennt).
- AuthUserFile: gibt den absoluten Pfad (von zuoberst auf dem Server) bis zu der Datei an, welche die Passworte den Benutzernamen zuordnet. Jene Datei liegt in diesem Beispiel auch im Ordner 'lehrling' und heisst .htusers - ich könnte sie aber ebensogut .htpasswd genannt haben (falls ich dies in der Pfadangabe so vorgesehen hatte).

AuthType Digest

AuthType Digest: Zugangsdaten werden nun verschlüsselt vom Browser an den Server geschickt, ältere Browser (IE 6) können das nicht.

.htusers oder .htpasswd

Bevor wir die Passworte zuteilen können müssen wir sie verschlüsseln. Dies geschieht beispielsweise durch ein Freeware-Programm namens 'Easy .htaccess Generator' oder via einer Website http://www.webmaster-elite.de/online-tools/htaccess-generator.html oder http://www.easyseo.de/tools/htaccess-generator/ wo das gewünschte Passwort in ein Formularfeld eingetragen wird, das es dann verschlüsselt ausgibt. Zum Beispiel "lehrling" wird zu "UZgrINpxr9DEQ". Dieser verschlüsselte Wirrwarr wird nun in die .htusers-Datei übertragen, wobei das unverschlüsselte Passwort natürlich nicht vergessen werden darf. Das Script sieht so aus:

# .htusers-Datei für den lehrling-Ordner
Benutzername:Wirrwarr
lehrling:UZgrINpxr9DEQ
zweiterbenutzername:wirrwarr
undsoweiter:wirrwarr

Es folgt der Übertrag via FTP des Ordners (lehrling) mit beiden Dateien (.htaccess + .htusers) und allen zu schützenden Dateien und Unterordner. Will ein Surfer mit einem Browser auf eine Datei oder einen Ordener im Ordner 'lehrling' zugreiffen, erscheint eine Passwortabfrage, welche gegebenen Falls den Zugriff erlaubt oder verhindert. In meinem Fall also war der Ordnername 'lehrling', der Benutzername 'lehrling' und das Passwort ebenfalls 'lehrling'.

- gibt der Benutzer im Browser als Adresse nur den Ordnernamen "lehrling" ein, erhält er nur Zugang, wenn eine index.htm Datei im entsprechenden Ordner vorhanden ist. Andernfalls wird der Zugang verweigert, auch wenn Benutzername wie Passwort richtig waren, damit wird verhindert, dass der Ordner durchsucht werden kann und alle Dateien aufgelistet werden. Existiert also keine index.htm Datei (oder index.html, default.htm, etc.) im Ordner, muss eine existierende Datei direkt angesprochen werden!

Zugang für Gruppen

.htgroups

- Es lassen sich auch ganze Gruppen definieren in denen verschiedene Benutzernamen zusammengefasst werden. Dies in einer .htgroups -Datei (steht zum Beispiel affenhorde:Biefer Hansheiri Seppli) welche auch in der .htaccess Datei referenziert werden muss:

	
# .htaccess-Datei für den lehrling-Ordner
AuthType Basic
AuthName "Sicherheits Bereich - bitte geben Sie Ihre Zugangsdaten ein:"
AuthUserFile /ordner/ordner/lehrling/.htusers
AuthGroupFile /ordner/ordner/lehrling/.htgroups
require user Hansheiri Seppli Liselotte
require group affenhorde

.htsave

- Der Ordner, welcher diese Referenzdateien enthält muss nicht der zu schützende Ordner sein; ein Ordner mit einem Punkt am Anfang wie .htsave würde auch in keinem Browser angezeigt.

- Es lassen sich auch nur einzelne Datei-Typen schützen, bzw. für einzelne Users Zugriffsberechtigungen erteilen, dies in der .htaccess -Datei bei 'Files'.

# .htaccess-Datei - jpg-Dateien im lehrling-Ordner schützen
AuthType Basic
AuthName "Lehrling Bereich"
AuthUserFile /lehrling/.htusers
<Files *.jpg>
require user Liselotte
</Files>

Zugang für eine IP

Satisfy Any

Mir als Webmaster mit einer festen IP-Adresse, kann ich unkonntrollierten Zutritt verschaffen.

# .htaccess-Datei - lässt IP 123.123.123.14 durch
AuthType Basic
AuthName "Webmaster Bereich"
AuthUserFile /lehrling/.htusers
Require valid-user
Allow from 123.123.123.14
Satisfy Any

Und dummen Hackern oder Bots mit einer festen IP-Adresse, kann ich den Zutritt verwehren.

Order allow,deny
Allow from all
Deny from 205.134.172.1

Zugriff auf Datei-Typen verbieten

Passworte, die in PHP-Dateien als Variablen hinterlegt wurden, werden ja sowieso nicht dargestellt. Also, wenn ich den Dateinamen einer PHP-Datei kenne, und im Browser aufrufe, sehe ich nichts als eine weisse, geparste Seite.

Der Zugriff von aussen her kann auch generell verboten werden (ich erteile dann keine Berechtigung durch eine Passwortabfrage). Der Zugriff von innen her (für die Scripte) bleibt dabei erhalten.

Zugangsdaten in .inc Dateien abgelegt (passwort.inc), sollen nicht in ungeschützten Verzeichnissen liegen! Errät man die Namen, kann die Datei einfach im Browser aufgerufen werden. Durch .htaccess-Dateien in Ordnern für Passworte und Zugangsdaten, die zudem noch speziel benannt werden (kannstelangeratenordnername), kann der Zugriff auf diese Dateien von Aussen verboten werden.

Order deny,allow

Order deny,allow oder Order allow,deny legt die Reihenfolge der Bearbeitung der folgenden Anweisungen fest. Ich kann erst alles verbieten (deny) und dann ein paar Ausnahmen erlauben (allow), oder erst alles erlauben und dann ein paar Ausnahmen verbieten.

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

Weitere Dateiendungen schützen, z.B. auch noch .dat:

<FilesMatch "\.(inc|dat)$">
Deny from all
</FilesMatch>

Weil eben auch regex benutzt werden können sind auch Expressions vor dem Punkt kontrollierbar.

<FilesMatch "^(dateinamen\.inc)$">
Order allow,deny
Deny from all
</FilesMatch>

Und die .htaccess Datei selbst.

<Files .htaccess>
order allow,deny
deny from all
</Files>

Dateien nicht Indexieren

Options All

Wie kann ich verhindern, dass Dateien in einem bestimmten Ordner durch den Browser indexiert werden?
Falls in einem Ordner keine Standart-Index-Datei (z.B. index.php oder index.html) vorhanden ist und der Ordner im Browser aufgerufen wird, erstellt der Server ein Inhaltsverzeichnis, eine Auflistung sämtlicher Files im Ordner.

Mehr zum Thema Sicherheit


Valid XHTML 1.0 Check den Code.

Mod rewrite >> << Eigene Fehlerseiten
Ich bin hier: > Andere Sprachen Lehrling >>> Passwort und Schutz
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 19.12.2009