Basic Auth per htaccess
Die einfachste Möglichkeit deine Webseite mit einem Passwort abzusichern, ist via Basic Auth in der htaccess - Datei.
Du kennst es wahrscheinlich, du hast eine Entwicklungsumgebung und möchtest nicht, dass diese für jeden sichtbar ist. Nicht jedes Content-Management-System bietet es an, auf Knopfdruck die Webseite in einen Wartungsmodus zu schalten und für Unbefugte zu sperren.
Wenn du einen Apache Webserver hast, dann kannst du das in wenigen Minuten mit dem Basic Auth Schutz erreichen.
Kopie folgenden Eintrag in deine .htaccess - Datei ein:
AuthUserFile "<Pfad zu deinem Document Root>/.htpasswd"
AuthName "Realm"
AuthType Basic
require valid-user
Ersetze <Pfad zu deinem Document Root> durch den absoluten Pfad zu dem Document Root deiner Webseite. Du kannst das in der PHPinfo nachlesen oder direkt in der Unixkonsole mit dem Befehl: pwd.
Jetzt brauchst du in dem Document Root noch eine Datei: .htpasswd. Diese Datei enthält die Basic Auth Zugangsdaten von allen berechtigten Benutzern.
Diese Datei erstellst du in der Unixkonsole mit folgendem Befehl:
htpasswd -c .htpasswd <Benutzername>
Ersetze hier <Benutzername> mit deinem gewünschten Benutzernamen. Danach wirst du aufgefordert, ein Passwort einzugeben. Wunder dich nicht, bei der Passworteingabe gibt es keinerlei Benutzerfeedback über die Eingabe. Also keine Sternchen oder das Passwort selber. Gebe das Passwort ein und bestätige das mit der RETURN - Taste. Danach musst du das Passwort noch einmal bestätigen und ebenfalls mit der RETURN - Taste abschließen.
Damit ist die .htpasswd - Datei mit den Zugangsdaten erstellt.
Falls du noch weitere Zugänge in diese Datei schreiben willst, dann kannst den Befehl ohne den Parameter: c aufrufen:
htpasswd .htpasswd <Benutzername2>
Wenn du jetzt die Webseite aufrufst, dann wirst du vom Browser aufgefordert, deine Zugangsdaten einzugeben.
IP's ausschließen
Wenn man mehrere Webseiten hat, die solche Basic Auth Schutz haben, dann kann es ganz schön nervig sein immer die Zugangsdaten eingeben zu müssen. Deshalb kann man diesen Basic Auth Schutz so erweitern, dass man Benutzer aus IP Basis davon ausschließen kann. Das bedeutet, Benutzer mit diesen IP's dürfen die Webseite ohne Zugangsdaten betreten. Der Eintrag in der .htaccess - Datei sieht dann wie folgt aus:
AuthUserFile "<Pfad zu deinem Document Root>/.htpasswd"
AuthName "Realm"
AuthType Basic
require valid-user
Record information
AuthUserFile "<Pfad zu deinem Document Root>/.htpasswd"
AuthName "Realm"
AuthType Basic
Require valid-user
#Exclude IP
Satisfy any
Deny from all
Allow from <deine IP>
Du kannst so viele Allow from <IP> Einträge erstellen, wie du möchtest und somit weitere Benutzer freigeben.