apache:htaccess

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
apache:htaccess [2015/02/14 17:07] – [.htpasswd] stapache:htaccess [2018/11/23 09:22] (aktuell) – [.htpasswd] st
Zeile 1: Zeile 1:
 +====== Zugriffsschutz mit Apache (.htaccess) ======
 +[[wpde>.htaccess]] ist eine einfache Möglichkeit ganze Ordner mit einem einfach Passwortschutz zu versehen. Darüber hinaus können auch spezielle Einstellungen für Ordner konfiguriert werden.
  
 +:!: Die Konfiguration durch .htaccess-Datei muss in der Apache-Konfiguration aktiviert sein (standardmäßig ist "AllowOverride None" aktiviert):
 +
 +<file>
 +<Directory />
 +        AllowOverride AuthConfig
 +</Directory>
 +</file>
 +
 +
 +  * [[http://de.selfhtml.org/servercgi/server/htaccess.htm|Selfhtml zu htaccess]]
 +  * [[http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/|Stupid htaccess Tricks]]
 +
 +
 +===== Beispiel =====
 +==== .htaccess ====
 +
 +
 +  * Diese **Datei in den zu schützenden Ordner** legen!<file>
 +# .htaccess-Datei für ein Web-Verzeichnis
 +
 +AuthType Basic
 +AuthName "Geheimer Bereich"
 +AuthUserFile .htpasswd
 +Require user NAME
 +</file>
 +  * oder **zentral in der Apache-Konfiguration** innerhalb eines virtuelles Host (statt "/" kann auch ein einzelnes Unterverzeichnis angegeben werden: "/geheim"):<file>
 +<Location / >
 +    AuthType Basic
 +    AuthName "Geheimer Bereich"
 +    AuthUserFile /etc/apache2/htusers
 +    Require valid-user
 +</Location>
 +</file>
 +
 +==== .htpasswd ====
 +Passwörter verschlüsselt mit Bcrypt ablegen:
 +
 +**Datei anlegen mit erstem Benutzer** "BENUTZERNAME":
 +  htpasswd -c -B /Pfad/.htpasswd BENUTZERNAME
 +
 +<file>
 +# Die Datei würde so aussehen, bei Passwort 123:
 +BENUTZERNAME:$2y$05$7dj5wXAYbPs4hIg/c0Pm5eB8o/za6cpshdRJjRVbL2AChzhnb2VTq
 +</file>
 +
 +Anschließend **weitere Benutzer hinzufügen**:
 +  htpasswd -s /Pfad/.htpasswd BENUTZERNAME
 +===== Authentifizierung gegen mysql =====
 +
 +FIXME md5-hashes sind nicht sicher, es sollte eine alternative benutzt werden!
 +
 +  apt-get install libapache-mod-auth-mysql
 +
 +<code>
 +AuthName "Bitte Benutzername und Passwort eingeben"
 +AuthMySQL On
 +AuthMySQL_Host localhost
 +AuthMySQL_User DB_BENUTZERNAME
 +AuthMySQL_Password DB_PASSWORT
 +AuthMySQL_DB DATENBAK
 +AuthMySQL_Password_Table TABELLE_MIT_USERN
 +AuthMySQL_Username_Field FELD_MIT_BENUTZERNAMEN
 +AuthMySQL_Password_Field FELD_MIT_PASSWOERTERN
 +AuthMySQL_Encryption_Types Plaintext
 +AuthMySQL_Encrypted_Passwords Off
 +AuthType Basic
 +require valid-user
 +</code>
 +Besser wäre es allerdings nur die md5-Hashes abzuspeichern:
 +<code>
 +AuthMySQL_Encryption_Types PHP_MD5
 +AuthMySQL_Encrypted_Passwords On
 +</code>
 +
 +- Passwort-Feld vom Typ varchar(32)
 +- Neue Benutzer so in die Datenbank eintragen:
 +<code mysql>
 +Insert into TABELLE_MIT_USERN (FELD_MIT_BENUTZERNAMEN, FELD_MIT_PASSWOERTERN ) Values ('User1', md5('geheim'));
 +</code>