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

Database di conoscenze

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


Icons/System/eye-open Created with Sketch. 1255 viste 23.05.2025 Web / Hosting Web
Informazioni sulla traduzione

Questa traduzione è stata generata automaticamente dal nostro partner SYSTRAN. I contenuti potrebbero presentare imprecisioni, ad esempio la nomenclatura dei pulsanti o alcuni dettagli tecnici. In caso di dubbi consigliamo di fare riferimento alla versione inglese o francese della guida. Per aiutarci a migliorare questa traduzione, utilizza il pulsante "Contribuisci" di questa pagina.

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:

OVHcloud mette a tua disposizione servizi di cui tu sei responsabile per la configurazione e la gestione. Assicurarne il corretto funzionamento è quindi responsabilità dell'utente.

Questa guida ti aiuta a eseguire le operazioni necessarie. Tuttavia, in caso di difficoltà o dubbi, ti consigliamo di rivolgerti a uno specialista del settore o di contattare l'amministratore del servizio. OVHcloud non potrà fornirti alcuna assistenza. Per maggiori informazioni consulta la sezione "Per saperne di più" di questa guida.

Gli esempi che seguiranno devono essere salvati in file denominati ".htaccess" e ".htpasswd". Attenzione, le regole definite in questi file hanno conseguenze dirette sul tuo sito web. Prima di applicarle al tuo sito, verifica sistematicamente le regole che aggiungi.

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

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"

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.

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 o Performance, 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

Per motivi di sicurezza, si raccomanda l'utilizzo di SSH. Tuttavia, se disponi di un'offerta Starter o Personale 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".

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".

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.