Tutorial - Proteggere una directory o l'interfaccia di amministrazione del tuo sito web con file .htaccess e .htpasswd

Vedi come Markdown

Questa guida ti mostra come proteggere una directory o l'accesso alla gestione del tuo sito Web tramite un'autenticazione con i file .htaccess e .htpasswd

Obiettivo

Questa guida ti mostra come impostare un'autenticazione "utente/password" per accedere a tutto o a parte del tuo sito Web tramite un browser.

utilizzando due file di configurazione (HTTP) Apache da inserire nello spazio FTP del tuo hosting Web:

Informazioni sull’amministrazione dei servizi OVHcloud e su come trovare l’assistenza appropriata

Durante l’utilizzo delle guide OVHcloud, tieni presente le seguenti condizioni:

  • Le istruzioni mirano a fornire il maggior numero possibile di dettagli, ma non possono coprire tutti i casi d’uso individuali. Potrebbe essere necessario adattare le azioni descritte alle tue esigenze.
  • L’ecosistema OVHcloud è progettato per garantire flessibilità e libertà di scelta. I clienti sono quindi responsabili della configurazione corretta e sicura dei propri servizi. Per evitare la perdita di dati, ti consigliamo vivamente di applicare strategie di backup a tutti i tuoi dati importanti.
  • Le nostre guide e i nostri tutorial possono fare riferimento a software o servizi di terze parti in combinazione con le soluzioni OVHcloud. Il supporto tecnico fornito da OVHcloud non include la configurazione di sistemi o prodotti al di fuori della nostra responsabilità. Questo include, a titolo esemplificativo:
    • Sistemi operativi e interfacce utente (Windows, Debian, Plesk, ecc.).
    • Qualsiasi altro software di terze parti (client FTP, software di posta elettronica, ecc.).
    • Servizi offerti da altri provider (DNS, API, interfacce utente, ecc.).

Per ricevere l’assistenza appropriata in caso di problemi, segui queste indicazioni:

  • Cerchi una consulenza personalizzata o vuoi discutere di un argomento non trattato in dettaglio nella nostra documentazione?
    Unisciti alla Community OVHcloud per cercare il tuo argomento e confrontarti con altri utenti.
  • Devi segnalare un incidente relativo al tuo servizio OVHcloud o riscontri difficoltà nello Spazio Cliente OVHcloud?
    Crea una richiesta di supporto nel nostro centro assistenza.
  • Hai bisogno di assistenza professionale per il tuo progetto o di aiuto per attività al di fuori del nostro perimetro di supporto?
    Visita il nostro portale dei partner per trovare esperti che conoscono le soluzioni OVHcloud.
  • Cerchi informazioni più dettagliate sui nostri livelli di supporto e sui Professional Services?
    Visita le nostre pagine web sui livelli di supporto OVHcloud e sugli OVHcloud Professional Services.

Puoi partecipare al miglioramento della nostra documentazione:

  • Vuoi condividere un feedback per migliorare una guida o segnalare informazioni insufficienti su una pagina specifica?
    Utilizza i pulsanti "Questa pagina ti è stata utile?" in fondo alla pagina per farcelo sapere.
  • Vuoi proporre un aggiornamento concreto della documentazione?
    Utilizza la funzione "Modifica questa pagina", disponibile in fondo alla pagina e nella barra laterale.

Questa guida ti mostra come proteggere una directory o l'accesso alla sezione amministratore del tuo sito Web tramite un'autenticazione con i file ".htaccess" e ".htpasswd".

Prerequisiti

Procedura

Info

La soluzione di sicurezza proposta è solo una delle possibilità tecniche.

Sappiate, ad esempio, che se utilizzate un Content Management System (CMS), esistono altre soluzioni di sicurezza.

Se utilizzi un CMS Wordpress, OVHcloud mette a disposizione anche una guida su come utilizzare il file htaccess con WordPress.

Per qualsiasi domanda relativa alla creazione, all'utilizzo o alla programmazione del tuo sito Web, il supporto OVHcloud non sarà in grado di fornirti assistenza su questi argomenti.

Per farlo, contatta la nostra Community di utenti o i nostri partner OVHcloud.

Per proteggere l'accesso a una directory o a una parte del tuo sito, ti spieghiamo i 4 step principali da effettuare:

  • creare file "crypt.php", ".htaccess" e ".htpasswd"
  • Genera password crittografate con il file "crypt.php"
  • definire utenti e password crittografate con il file ".htpasswd"
  • Configurare regole nel file ".htaccess" ed eliminare il file "crypt.php"
Warning

Gli step successivi per ottimizzare la sicurezza dei tuoi dati ospitati. Se i tuoi siti Web sono compatibili, ti consigliamo di utilizzare la versione più recente possibile di PHP.

Per modificare la versione di PHP sui tuoi siti Web, consulta la nostra guida "Hosting Web: ambiente, versione PHP, .ovhconfig". In effetti, gli script e le informazioni descritte in questa guida funzionano solo con un ambiente di esecuzione e una versione PHP recente.

In caso contrario, ti consigliamo di ottimizzare il tuo sito Web per renderlo compatibile prima di installare quello che seguirà. Questa operazione ridurrà ulteriormente il rischio di pirateria informatica attraverso falle di sicurezza.

Step 1: creare file "crypt.php", ".htaccess" e ".htpasswd"

Accedi a lo spazio di storage FTP del tuo hosting Web. Apri la "cartella di root" verso cui punta il tuo dominio.

Crea un file "crypt.php" in questa "cartella root".

Apri o crea la cartella per essere protetta dal tuo sito Web. Nel nostro esempio, si tratterà della cartella "admin". Crea in questa directory un file ".htpasswd" e un file ".htaccess".

Per utilizzare correttamente i file ".htaccess" e ".htpasswd", è necessario conoscere e rispettare queste regole:

  • un solo file ".htaccess" e un solo file ".htpasswd" per directory o sottodirectory, per evitare conflitti tra file differenti ".htaccess" e ".htpasswd";
  • i file ".htaccess" e ".htpasswd" sono invisibili agli utenti che visitano il tuo sito Web;
  • le regole dichiarate in un file ".htaccess" si applicano all'intera directory in cui è installato il file ".htaccess", nonché a tutte le sottodirectory della stessa directory;
  • i file ".htpasswd" e ".htaccess" possono trovarsi in cartelle diverse. Per più ".htaccess" può essere utilizzato un solo file ".htpasswd".

Step 2: completare il file "crypt.php"

Clicca sulla cartella root in cui hai creato il file "crypt.php". Clicca su Modifica e inserisci queste righe:

<?php
$string = password_hash("plain_text_password", PASSWORD_BCRYPT);

echo nl2br("$string");
 ?>

Sostituisci plain_text_password con la password in chiaro che vuoi cifrare.

Puoi adattare lo script in funzione del numero di password che desideri cifrare.

  • Esempio in cui lo script PHP cifrerà 3 password in una sola operazione:
<?php
$string_1 = password_hash("plain_text_password1", PASSWORD_BCRYPT);
$string_2 = password_hash("plain_text_password2", PASSWORD_BCRYPT);
$string_3 = password_hash("plain_text_password3", PASSWORD_BCRYPT);

echo nl2br("$string_1 \n $string_2 \n $string_3");
 ?>

Sostituisci plain_text_password1, plain_text_password2 e plain_text_password3 con la password in chiaro che vuoi cifrare.

Info

I due script di cui sopra utilizzano, alla data, il metodo di cifratura più sicuro tramite l'algoritmo bcrypt raccomandato da Apache.

Per maggiori informazioni sull'argomento, consulta la documentazione ufficiale Apache.

Se disponi di un hosting Pro, Performance, Agency, Agency Plus o Agency Max, collegati in SSH al tuo hosting Web. Scendete nella "directory" dove si trova il vostro script "crypt.php".

Per effettuare questa operazione, utilizza il comando SSH:

cd Name_of_your_root_folder

Sostituisci Name_of_your_root_folder con il nome della tua "cartella di root" per scendere dove si trova il tuo script "crypt.php".

Se, ad esempio, il tuo file "crypt.php" si trova in una sottocartella della tua "cartella di root", esegui questo comando SSH:

cd Name_of_your_root_folder/sub_folder

Sostituisci Name_of_your_root_folder con il nome della tua "cartella di root" e sub_folder con il nome della sottocartella in cui si trova il tuo script "crypt.php".

A questo punto, esegui il comando:

php crypt.php
Warning

Per motivi di sicurezza, si raccomanda l'utilizzo di SSH. Tuttavia, se disponi di un'offerta Starter, Personale o Startup sulle quali l'SSH non è disponibile, puoi anche eseguire il file "crypt.php" tramite il tuo browser Web.

Inserisci questo URL: https://domain.tld/crypt.php en che modifica domain.tld con il tuo dominio. Direttamente nella barra degli indirizzi del browser.

Recupera le password cifrate senza copiare il "<br />" se esegui l'ordine "php crypt.php" in SSH:

encrypted_password1
encrypted_password2
encrypted_password3

I valori encrypted_password1, encrypted_password2 e encrypted_password3 devono, ad esempio, essere conformi al formato della riga seguente:

$2y$10$8eO7Iq3rh.u3CXvhuhKq.Om.nQJN.Z1sBT2jvOqVKCGzP42T/4LBC

Verifica solo che la tua password crittografata inizi correttamente con $2y$. Questa operazione conferma che la tua password è stata cifrata con l'algoritmo sicuro *bcrypt.

Step 3: definire gli utenti e le password cifrate con il file ".htpasswd"

Il file ".htpasswd" contiene le rispettive password cifrate a ciascuno degli utenti dichiarati nel file. Sono solo questi utenti che saranno autorizzati a connettersi alla directory di cui vuoi proteggere l'accesso.

Per farlo, per ogni utente in questo file, inserisci una riga che indica il suo identificativo e la password cifrata:

user1:encrypted_password1
user2:encrypted_password2
user3:encrypted_password3

Sostituisci user1, user2 e user3 del nostro esempio con i nomi degli utenti.

Sostituisci encrypted_password1, encrypted_password2 e encrypted_password3 con le password precedentemente recuperate.

Step 4: configurare le regole nel file ".htaccess"

Blocca l'accesso a una directory completa

Nella directory da proteggere, crea un file ".htaccess" con questo codice:

AuthName "Indicates your login(s)"
AuthType Basic
AuthUserFile "/home/your_ftp_login/root_folder/admin/.htpasswd"
Require valid-user

Nello script di cui sopra, sostituisci questi elementi con i tuoi valori:

  • "Indicates your login(s)": corrisponde all'utente o agli utenti autorizzati ad accedere alla directory completa. Se hai più utenti, separali solo per via spazio.
  • your_ftp_login: il login FTP che utilizzi per accedere al tuo spazio di archiviazione FTP. Per recuperare il tuo login FTP, consulta la nostra guida sulla connessione al tuo spazio FTP.
  • root_folder/admin/.htpasswd: percorso di accesso directory dalla root FTP del tuo hosting web al file ".htpasswd" che deve essere utilizzato per autenticare gli utenti autorizzati dalla regola presente nel tuo file ".htaccess".

Blocca l'accesso a uno o più file

Per bloccare l'accesso a uno o più file, aggiungi una direttiva "Files" nel file ".htaccess":

<Files test.php>

AuthName "Indicates your login(s)"
AuthType Basic
AuthUserFile "/home/your_ftp_login/root_folder/admin/.htpasswd"
Require valid-user

</Files>

Nello script di cui sopra, sostituisci questi elementi con i tuoi valori:

  • test.php: nome del file specifico o gruppo di file contenente, nel nostro esempio, il termine test.php (termine per il quale si applica la restrizione di accesso).
  • "Indicates your login(s)": corrisponde all'utente o agli utenti autorizzati ad accedere ai file i cui nomi contengono test.php. Se hai più utenti, separali per un spazio.
  • your_ftp_login: il login FTP che utilizzi per accedere al tuo spazio di archiviazione FTP. Per recuperare il tuo login FTP, consulta la nostra guida sulla connessione al tuo spazio FTP.
  • root_folder/admin/.htpasswd: percorso di accesso directory della radice FTP del tuo hosting web fino al file ".htpasswd" che deve essere utilizzato per autenticare gli utenti autorizzati dalla direttiva del file ".htaccess".
Warning

Inserisci una direttiva "Files" per ogni file da proteggere.

Le direttive "Files" si applicano a tutti i file con lo stesso nome o che terminano con il nome specificato. A condizione che siano contenuti nella stessa directory del.htaccess o in una delle sue sottocartelle.

Nella configurazione sopraindicata, poiché "new_test.php" contiene test.php nel suo nome, la direttiva "Files" si applicherebbe anche su un file "new_test.php" contenuto in una sottodirectory della cartella "admin".

Inoltre, fino a quando non vi sarà autenticato per accedere ai file oggetto della direttiva, questi possono non apparire e non essere quindi "leggibili" tramite una pagina "index of".

Danger

Una volta completata l'installazione dei tuoi file ".htaccess" e ".htpasswd", elimina il file di crittografia "crypt.php" dal tuo hosting Web.

Per saperne di più

Documentazione ufficiale Apache

Accedere allo spazio FTP del tuo hosting Web

Tutorial - Operazioni realizzabili con un file ".htaccess"

Bloccare l'accesso al mio sito per alcuni indirizzi IP tramite un file.htaccess

Riscrivere l'URL di accesso al mio sito grazie al mod_rewrite via file.htaccess

Per prestazioni specializzate (referenziamento, sviluppo, ecc...), contatta i partner OVHcloud.

Per usufruire di un supporto per l'utilizzo e la configurazione delle soluzioni OVHcloud, è possibile consultare le nostre soluzioni offerte di supporto.

Contatta la nostra Community di utenti.

Questa pagina ti è stata utile?