L'autenticazione di base mette davanti a un percorso la richiesta di password del browser, prima ancora che si arrivi alla sua applicazione. È perfetta per i siti di staging, per uno strumento interno o per una seconda serratura su un'area di amministrazione.

Crei il file delle password

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 sovrascrive il file. Lo usi una volta e mai più sullo stesso file, altrimenti ha appena cancellato ogni altro account che c'era dentro.

Nginx

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

Apache e LiteSpeed

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

Che cosa protegge

  • Un sito di staging dai motori di ricerca e dai visitatori di passaggio.
  • Un percorso di amministrazione dai tentativi automatici di accesso, prima che arrivino alla sua applicazione.
  • Qualunque cosa lei voglia chiudere in silenzio senza scrivere codice.

Che cosa non protegge

  • È riservata quanto lo è il suo TLS. Su http la password parte quasi in chiaro a ogni richiesta.
  • Non c'è blocco né registro di chi è entrato: è una password condivisa, non un account.
  • Rompe le API e i webhook che non sanno di dover mandare credenziali. Esenti quei percorsi in modo esplicito.
location /staging/api/webhook {
    auth_basic off;
}
Per un sito di staging aggiunga anche add_header X-Robots-Tag "noindex, nofollow";. L'autenticazione di base tiene già fuori i crawler; l'intestazione lo tiene fuori dall'indice se un giorno la protezione venisse tolta per sbaglio.