htpasswd | server?

2 Antworten

Hallo! Um versteckte Verzeichnisse auf einem Webserver abzusichern, ist die Verwendung von .htpasswd und .htaccess eine gute Möglichkeit. Wenn diese Dateien korrekt eingerichtet sind, wird bei jedem Zugriffsversuch auf einen geschützten Bereich oder ein geschütztes Verzeichnis ein Benutzername und Passwort abgefragt. Hier ist eine Schritt-für-Schritt-Anleitung, um einen Ordner mit .htpasswd und .htaccess abzusichern: 1. Erstellung der .htpasswd-Datei: Diese Datei sollte außerhalb des öffentlichen Verzeichnisses liegen, um sicherzustellen, dass sie nicht direkt aufgerufen werden kann. Du kannst eine .htpasswd-Datei erstellen, indem du einen Benutzernamen und ein verschlüsseltes Passwort hinzufügst. Diese kannst du z.B. mithilfe einer Webseite wie http://www.htaccesstools.com/htpasswd-generator/ generieren. 2. Erstellung der .htaccess-Datei: In dem Verzeichnis, das du schützen möchtest, erstelle eine .htaccess-Datei und füge folgende Zeilen hinzu: ``` AuthType Basic AuthName "Geschützter Bereich" AuthUserFile /pfad/zur/htpasswd/datei/.htpasswd Require valid-user ``` Ersetze dabei "/pfad/zur/htpasswd/datei/.htpasswd" durch den tatsächlichen Pfad zur .htpasswd-Datei auf deinem Server. 3. Setze die richtigen Berechtigungen für die Dateien: Stelle sicher, dass die .htaccess-Datei die Berechtigung 644 hat und die .htpasswd-Datei die Berechtigung 600. Wenn das korrekt eingerichtet ist, sollte jeder, der versucht, auf das geschützte Verzeichnis zuzugreifen, zur Eingabe von Benutzername und Passwort aufgefordert werden. Diese Methode hilft dabei, unerwünschten Zugriff auf versteckte Verzeichnisse zu verhindern und schützt gleichzeitig auch gegen Tools wie gobuster. Zwar bieten .htpasswd und .htaccess keine perfekte Sicherheit, aber sie sind ein einfacher und wirksamer Weg, um einen grundlegenden Schutz für versteckte Verzeichnisse auf einem Webserver zu bieten. Viel Erfolg bei der Absicherung deiner Verzeichnisse! Ich hoffe ich konnte dir mit meiner Antwort weiterhelfen. Liebe Grüße, Carina Sophie Schoppe :)


redinhoje 
Fragesteller
 11.04.2023, 12:42

Wie es eingerichtet wird, weiß ich. Wollte nur wissen ob es bessere Alternativen gibt.

Danke trotzdem .

1

htpasswd oder allgemein die Authentifizierung über http Status 401 findet man heute fast nicht mehr aufgrund der unglaublich hässlichen Abfragefenster.

Wenn man eine Anwendung schreibt, legt man Daten, auf welche nicht öffentlich zugegriffen werden soll, nicht ins Webroot sondern in ein Verzeichnis, auf welcher der Webserver keinen direkten Zugriff hat oder in eine Datenbank.

Per Brute Force findet man dann vielleicht ein paar Pfade / APIs / öffentliche Dateien, aber bekommt ohne gültige Session und ohne über die Anwendung zu gehen keine sensiblen Daten. Ob der Server da dann 403, 404, 301 oder anders antwortet, ist eine Frage der Anwendung.

Mit dem ersten Abruf der Seite wird bei fast allen Anwendungen immer direkt eine Session erzeugt und per Header oder Cookie in allen folgenden Anfragen weitergegeben, ein Login des Nutzers hinterlegt dann "nur" die neuen Daten und Berechtigungen in den Sessiondaten auf Serverseite.

Heutzutage hat die URL auch nur noch bedingt mit der Verzeichnisstruktur auf dem Server zu tun, da die Anfragen oft einfach ALLE an den Router der Anwendung weitergeleitet werden, der dann die Zugriffsrechte prüft. Mal von ein paar Ausnahmen wie "Schmuck"-Bilder, CSS, JS und anderen statischen Dateien ohne schützenswerte Informationen abgesehen.


redinhoje 
Fragesteller
 10.04.2023, 23:13

Welche Databases würdest du empfehlen ?? Und wie meinst du dass “auf welcher der Webserver keinen direkten Zugriff hat” - meinst du damit dass einfach in einen anderen Directory auf dem Server auf den man nicht über einen Browser zugreifen kann?

Ich will es so machen, dass wenn man sich einloggt, dass man dann eine bestimmte Seite sieht, welche man ausschließlich mit dem Login Daten sehen kann. Nur als Beispiel.

0
iQa1x  10.04.2023, 23:25
@redinhoje

Datenbank kommt auf die Anwendung an. Von SQLite für ganz kleine Apps über MariaDB hin zu Postgres (um nur die Freien zu nennen) ist alles möglich.

Ja, wenn bsp. /var/www/html das Webverzeichnis ist, werfe ich Dateien nach /opt/webdata . Auf dem eigenen Server kein Problem, bei Shared Hosting geht es nur manchmal, kommt auf den Anbieter an.

Schaue dir mal ein Tutorial zu einem Login-System an, z.B. https://wiki.selfhtml.org/wiki/PHP/Tutorials/Loginsystem oder https://www.php-kurs.com/loesung-einlogg-script.htm

1
redinhoje 
Fragesteller
 11.04.2023, 00:04
@iQa1x

Danke! Schönen Abend noch !
Habe mich mit MySQL früher etwas auseinander gesetzt aufgrund Erfahrungen in der Softwareentwicklung. Bin 16 und wollte etwas in die Netzwerksicherheit übergehen, da ich sowieso schon seit ca. 3 Jahren Erfahrungen mit Serversystemen habe ( früher dennoch nur Sachen wie Minecraft/CSGO Server etc. )

0