| Author |
Message |
NiMhurchu
Moderator


Age: 39
Joined: 04 Mar 2005
Posts: 376
Location: 91xxx

|
Posted:
2006-01-14, 14:33 Verzeichnisschutz per .htaccess |
  |
Hi,
ist zwar nicht direkt eine eigene Erweiterung, aber ich denke, hier paßt es ganz gut rein.
Als langmonatiger (langjähriger paßt bei knapp über einem Jahr nicht ganz) zufriedener Nutzer einer statischen IP-Adresse könnte man auf die Idee kommen, diese auch als Authentifikation gegenüber dem Webserver oder den Scripten zu verwenden. Das hat den Vorteil, daß nicht jedesmal ein Benutzername und ein Paßwort eingegeben werden muß. Sicherlich könnte man Benutzername und Paßwort auch in einen Link hineincodieren, z. B. http://benutzername:passwort@www.meinedomain.de/mysqldumper/ , aber wenn einem Dritten dieser Link dann in die Hände fällt, dann ist Polen offen.
(OT: der Spruch zieht übrigens nicht mehr ganz, weil Polen *ist* ja jetzt offen. )
Die Prüfung der IP-Adresse über die Scripte würde Änderungen an allen Scripten erfordern, also auch untauglich.
Hier bietet sich noch die .htaccess an, wenn man denn eine solche erstellen darf und wenn der Provider den Zugriffsschutz nicht auf andere Weise realisiert.
Schritt 1: .htaccess
# meine .htaccess-Datei für das Verzeichnis /mysqldumper
AuthName " MySQLDumper"
AuthType Basic
AuthUserFile /physikalischer/Pfad/zur/Datei/namens/.htpasswd
order deny,allow
deny from all
satisfy any
allow from a.b.c.d
require user hans peter
Zeile 1: Kommentare werden mit "#" eingeleitet und vom Webserver nicht beachtet
Zeile 2: "AuthName" bezeichnet sozusagen den Namen des Bereichs, in den Du "eindringen" möchtest
Zeile 3: AuthType ist der Authentifizierungstyp
Zeile 4: hier wird der physikalische Pfad zur Paßwortdate angegeben. Physikalisch! Nicht im Format http://www.meinedomain.de/...
Zeile 5: Reihenfolge: erst verbieten, dann erlauben
Zeile 6: ersteinmal alles verbieten
Zeile 7: von beiden folgenden Authentifizierungsmechanismen muß wenigstens einer richtig sein. Gegenteil: satisfy all -- hier müssen beide Mechanismen das Resultat "gültige Authentifizierung" zurückmelden
Zeile 8: IP-Adresse; wohlgemerkt die externe IP-Adresse des Internetanschlusses. Kann auch im Format a.b.c angegeben werden. Dann ist aber wiederum das ganze Netz (also z. B. die Hosts 80.140.213.1 bis 80.140.213.254) zum Zugriff berechtigt. Durch das obige satisfy any muß bei gültiger IP-Adresse kein Paßwort eingegeben werden!
Zeile 9: wenn die Authentifizierung über die IP-Adresse fehlschlägt, wird nach Benutzername und Paßwort gefragt. In diesem Beispiel dürfen nur die Benutzer hans und peter zugreifen.
Edit:
Wozu ist das Ganze nun gut?
1. Bequemlichkeit. Wenn man schon eine statische IP-Adresse hat, dann sollte man sie auch nutzen. Sowas ist nicht nur zum Angeben da!
2. Sicherheit. Den MySQLDumper sollte man nicht einfach so rumliegen lassen.
3. Flexibilität. Bist Du zuhause, brauchst Du kein Paßwort einzugeben. Bist Du unterwegs, kannst Du immerhin ein Paßwort eingeben, um auf das Verzeichnis zu kommen.
Wird Zeile 8 (allow from a.b.c.d) weggelassen, wird wiederum nur der Benutzername und das Paßwort überprüft, die IP-Adresse nicht mehr.
Andersherum und nicht besonders empfehlenswert: wird das "require user"-Statement entfernt, kann man nur noch von dieser einen IP-Adresse zugreifen.
Schritt 2: .htpasswd
Um die Paßwörter abzugleichen, braucht's noch die Paßwortdatei, standardmäßig .htpasswd. Sicherheitshalber sollte diese Datei außerhalb des Zugriffs des Webservers liegen -- das ist vermutlich nicht bei jedem Hoster möglich.
Beispiel: "/" ist das Wurzelverzeichnis. Unter "/" gibt es die Unterordner "private/" und "www/". Der Webserver ist so konfiguriert, daß sein Startverzeichnis "www/" ist. Also steht alles, was außerhalb von "www/" ist, dem Webserver nicht zur Verfügung. Wird die Domain www.meinedomain.de/index.html aufgerufen, dann lädt der Webserver die Datei /www/index.html.
Also sollte die .htpasswd-Datei in "private/" liegen. Der physikalische Pfad zum Ordner "private/" könnte z. B. "/hp/aa/ab/kd/meier/private/" lauten, also müßte in diesem Beispiel für den Schlüssel "AuthUserFile" "/hp/ab/kd/meier/private/.htpasswd" in der Datei .htaccess stehen.
Die .htpasswd-Datei enthält die Usernamen und crypt()-verschlüsselte Paßwörter, durch Doppelpunkt getrennt: hans:H8L1tW6j9przy
Kann die Datei .htaccess nicht in einem Verzeichnis außerhalb des Zugriffs des Webservers gespeichert werden, sollte sie wenigstens in einem anderen geschützten Verzeichnis liegen, eventuell in dem Verzeichnis, für das die .htaccess gilt. Im Beispiel also in "/hp/aa/ab/kd/meier/www/mysqldumper/". In die .htaccess müßte dann als "AuthUserFile" "/hp/aa/ab/kd/meier/.htpasswd" eingetragen werden.
Wie erfahre ich den physikalischen Pfad?
Öffne einen Texteditor und gib <?php
phpinfo();
?> ein. Speichere das ganze als "phpinfo.php" und lade es auf Deinen Webserver hoch. Rufe die Datei über einen Browser Deiner Wahl auf. Suche auf der Seite z. B. nach "SCRIPT_FILENAME". In der Spalte daneben steht jetzt der physikalische Pfad zu diesem Script.
Wenn Du das Script in "/hp/aa/ab/kd/meier/www/test/phpinfo.php" gespeichert hast und es über "http://www.meinedomain.de/test/phpinfo.php" im Browser aufgerufen hast, dann weißt Du, daß "/hp/aa/ab/kd/meier/www/" das Wurzelverzeichnis Deines Webservers ist. "http://www.meinedomain.de/admin/" wäre dann also "hp/aa/ab/kd/meier/www/admin/", "http://www.meinedomain.de/" wäre "hp/aa/ab/kd/meier/www/".
Edit:
Wie kann ich mein Paßwort crypt()-verschlüsseln?
Z. b. unter
http://crypt-online.de/
oder
http://aktuell.de.selfhtml.org/artikel/server/htaccess/index.htm
Achtung: wird in der Datei .htaccess "satisfy all" und eine falsche (z. B. die interne IP-Adresse Deines Rechners) oder wechselnde (Standard-T-DSL-)IP-Adresse angegeben, kann man über den Browser nicht mehr auf das so "geschützte" Verzeichnis zugreifen (wofür ich, nebenbei gesagt, keine Verantwortung übernehme).
Hast Du Dich auf diese Art und Weise selber ausgesperrt, kannst Du Dich immer noch per FTP auf den Server verbinden und die Datei .htaccess löschen bzw. korrigieren.
Gruß,
NiMhurchu
_________________ "Man muß keine Noten lesen können,
um Musiker zu sein."
Jeanette Biedermann, deutsche Popsängerin, 25.11.2005
Last edited by NiMhurchu on 2006-01-14, 14:54; edited 1 time in total
|
|
  |
 |
Anzeigen
|
Posted:
Anzeigen |
 |
|
| |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2006-01-14, 14:42 Re: Verzeichnisschutz per .htaccess |
  |
Mein lieber NiMhurchu,
dies ist ein hervorragendes und gut erklärtest Tutorial zum Thema .htaccess.
Vielen Dank dafür.
Da werden sicher einige User wieder ein Stück mehr verstehen wie das alles im Netz so funktioniert. Klasse.
Werde mir mal überlegen, wo man das dauerhaft unterbringen kann, so dass das für alle Interessierten schnell auffindbar ist.
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
NiMhurchu
Moderator


Age: 39
Joined: 04 Mar 2005
Posts: 376
Location: 91xxx

|
Posted:
2006-01-14, 14:58 Re: Verzeichnisschutz per .htaccess |
  |
Oh... danke...
ich dachte mir nur, ich beschreibe mal, wie man den MySQLDumper noch bequemer bedienen kann.
_________________ "Man muß keine Noten lesen können,
um Musiker zu sein."
Jeanette Biedermann, deutsche Popsängerin, 25.11.2005
|
|
  |
 |
|
|
CrackerTracker © 2004 - 2012 CBACK.de
Powered by Orion based on phpBB
© 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
All times are GMT + 2 Hours
phpBB SEO
|