Basic Authentication stellt eine Passwortabfrage des Browsers vor einen Pfad, noch bevor Ihre Anwendung erreicht wird. Ideal für Staging-Websites, ein internes Werkzeug oder ein zweites Schloss vor einem Adminbereich.

Die Passwortdatei anlegen

sudo apt-get install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd sara      # -c creates; omit it to ADD
sudo chmod 640 /etc/nginx/.htpasswd
sudo chown root:www-data /etc/nginx/.htpasswd
-c überschreibt die Datei. Benutzen Sie es einmal und nie wieder auf derselben Datei, sonst haben Sie gerade jedes andere Konto darin gelöscht.

Nginx

location /staging/ {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Apache und LiteSpeed

AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/nginx/.htpasswd
Require valid-user

Was sie schützt

  • Eine Staging-Website vor Suchmaschinen und zufälligen Besuchern.
  • Einen Admin-Pfad vor automatischen Anmeldeversuchen, bevor die Ihre Anwendung erreichen.
  • Alles, was Sie ohne eine Zeile Code still schließen wollen.

Was sie nicht schützt

  • Sie ist nur so vertraulich wie Ihr TLS. Über http geht das Passwort bei jeder Anfrage nahezu im Klartext hinaus.
  • Es gibt keine Sperre und kein Protokoll darüber, wer sich angemeldet hat - es ist ein gemeinsames Passwort, kein Konto.
  • Sie zerlegt APIs und Webhooks, die keine Zugangsdaten mitschicken. Nehmen Sie diese Pfade ausdrücklich aus.
location /staging/api/webhook {
    auth_basic off;
}
Für eine Staging-Website setzen Sie zusätzlich add_header X-Robots-Tag "noindex, nofollow";. Basic Auth hält Crawler ohnehin fern; der Header hält sie aus dem Index, falls der Schutz je versehentlich entfernt wird.