Come proteggere con password un sito o una singola pagina
Come proteggere un sito con password
Come proteggere con password un sito o una pagina web (opzioni reali) | We.Inc
Proteggi con password una pagina o un intero sito nel modo che funziona davvero: Basic auth sul server, password di pagina del tuo hosting o builder, o account dei membri, e perché i blocchi solo via script falliscono.
Un vero controllo della password avviene sul server prima che la pagina venga inviata. Usa l'impostazione di password della pagina del tuo hosting o site builder, l'autenticazione HTTP Basic in Apache o Nginx, oppure veri account dei membri. Una casella password scritta in JavaScript nasconde la pagina solo nel browser; il contenuto arriva comunque e chiunque può leggerne il sorgente.
Modi per mettere una password su un sito
Opzione
Protegge i contenuti?
Ideale per
Password di pagina del builder o del CMS
Sì, verificata dalla piattaforma
Una pagina privata per un cliente o un evento
HTTP Basic auth (Apache, Nginx)
Sì, tramite HTTPS
Un sito di staging o un'intera cartella
Account dei membri
Sì, per singola persona
Aree private a pagamento o di lunga durata
Prompt JavaScript o div nascosto
No
Niente di importante
Scrivi un nome utente e una password per vedere l'header Authorization esatto che un browser invia con l'autenticazione Basic, e quanto facilmente torna testo in chiaro. Mostra perché la Basic auth deve funzionare solo tramite HTTPS. La codifica avviene sul tuo dispositivo; non viene inviato nulla.
Decidi se basta una sola password condivisa o se ogni persona ha bisogno del proprio login.
Su un site builder o su WordPress, cerca prima un'impostazione di visibilità o di password della pagina.
Sul tuo server, aggiungi l'autenticazione Basic alla cartella o alla location, tenendo il file delle password fuori dalla cartella web pubblica.
Verifica che il sito forzi HTTPS, poi fai una prova in una finestra di navigazione privata.
Dai alla Basic auth una password lunga che non usi da nessun'altra parte, e cambiala quando il progetto o l'anteprima finisce.
In WordPress, editor e amministratori possono vedere gli articoli protetti da password nella schermata Modifica senza la password.
Una pagina protetta può comunque mostrare il suo titolo. Non mettere dettagli privati nel titolo della pagina.
Chiedi anche ai motori di ricerca di non mostrare una pagina privata con un tag noindex, ma non affidarti mai a questo come protezione.
Domande frequenti
Posso proteggere una pagina con password usando solo HTML?
No. L'HTML non ha modo di verificare una password. Tutto ciò che metti nel file viene scaricato da ogni visitatore, quindi il controllo deve avvenire sul server o sulla piattaforma.
L'autenticazione HTTP Basic è sicura?
Solo tramite HTTPS. La RFC 7617 fa notare che la password attraversa la rete in chiaro, perché Base64 è una codifica, non una cifratura, e dice che lo schema non dovrebbe proteggere informazioni sensibili senza qualcosa come HTTPS.
Come proteggo una pagina con password in WordPress?
Apri la pagina o l'articolo, imposta Visibilità su Protetto da password, inserisci una password e aggiorna. I visitatori vedono il titolo e una richiesta di password al posto del contenuto.
Posso proteggere un intero sito WordPress?
La documentazione stessa di WordPress dice che nascondere l'intero sito non fa parte del core, e rimanda a plugin o a regole del server come .htaccess.
Cosa mostra il browser con la Basic auth?
Il server risponde con 401 e un header WWW-Authenticate. Il browser chiede allora nome utente e password e ripete la richiesta con un header Authorization.
Perché i blocchi solo via script falliscono
Un tutorial diffuso aggiunge un prompt() e confronta la risposta con una password scritta nello stesso script. Il browser ha già scaricato la pagina completa, e la password è nel sorgente per chiunque lo visualizzi. Disattivare JavaScript salta del tutto il controllo.
Lo stesso vale per i contenuti nascosti con il CSS. Se le parole sono nell'HTML, sono pubbliche.
Scegliere tra le opzioni reali
Per una pagina da condividere con un cliente, la password di pagina del tuo builder o CMS è la scelta sicura più rapida. Per una copia di staging di un sito, la Basic auth sul server tiene privato tutto quanto, anche nei confronti dei crawler dei motori di ricerca.
Quando persone diverse hanno bisogno di accessi diversi, o devi rimuovere una persona in seguito, usa gli account. Una sola password condivisa non può essere tolta a una persona senza cambiarla per tutti.
Configurazioni del server che proteggono davvero una cartella
Crea il file delle password con lo strumento htpasswd incluso in Apache (per esempio htpasswd -c /etc/apache2/.htpasswd client), e tienilo fuori dalla cartella web pubblica.
Apache: .htaccess nella cartella da proteggere
Require valid-user fa entrare chiunque sia elencato nel file delle password.
Nginx: proteggere una location
Nginx legge lo stesso formato di file htpasswd. Ricarica Nginx dopo la modifica.
Cosa non fare: un blocco in JavaScript
Mostrato perché tu possa riconoscerlo. La password e il contenuto sono entrambi nel file che ogni visitatore scarica.
Cosa invia la Basic auth
Nome utente
Password
Il nome utente non può contenere i due punti, perché i due punti lo separano dalla password.
Header che il browser invia a ogni richiesta
Decodificato da chiunque veda la richiesta
Base64 non è una cifratura. Senza HTTPS, questo header rivela la password.