Puoi usare un file .htaccess per configurare alcune impostazioni del web server per il tuo sito. Tra queste: header HSTS, regole di cache e protezione dall'hotlinking.
Posiziona il file .htaccess nella directory a cui devono applicarsi le regole. Le regole valgono anche per le sottodirectory, a meno che non vengano sovrascritte al loro interno.
Per forzare il reindirizzamento del traffico verso HTTPS non serve modificare il file a mano: attiva l'interruttore dalla scheda Sicurezza → HTTPS Enforce del dominio. Vedi HTTPS Enforce.
Per la protezione dall'hotlinking usa la scheda Sicurezza → Hotlink protection del dominio. Vedi Hotlink protection.
L'HTTP Strict Transport Security, o HSTS, è un meccanismo di sicurezza per le connessioni HTTPS. Il browser memorizza che un dominio deve essere raggiunto solo via HTTPS per un determinato periodo di tempo.
Questo aiuta a proteggere dagli attacchi di downgrade, in cui una connessione viene forzata da HTTPS di nuovo a HTTP.
Un semplice header HSTS si presenta così:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000"
</IfModule>
Se l'HSTS deve applicarsi anche a tutti i sottodomini, puoi aggiungere includeSubDomains:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>
Usa questa opzione solo se tutti i sottodomini sono raggiungibili in modo affidabile via HTTPS. In caso contrario, i visitatori potrebbero non riuscire più ad accedere ad alcuni sottodomini.
Con il preload puoi preparare il tuo dominio per l'inserimento nella lista HSTS preload:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>
Usa il preload solo se sei certo che il dominio e tutti i sottodomini resteranno raggiungibili in modo permanente via HTTPS. L'inserimento nella lista preload può avere effetti a lungo termine e non può essere annullato immediatamente.
Trovi maggiori informazioni e strumenti di test qui:
https://securityheaders.com
https://hstspreload.org
L'header HSTS ha senso quando il sito è già raggiungibile solo via HTTPS. Attiva prima il reindirizzamento con HTTPS Enforce, poi aggiungi l'header HSTS nel file .htaccess:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000"
</IfModule>
Dopo aver salvato la configurazione, provala nel browser. Verifica inoltre che tutte le immagini, gli script, i fogli di stile e le risorse esterne vengano caricati via HTTPS.
Con mod_expires puoi definire per quanto tempo i browser devono mantenere in cache determinati file. Questo può migliorare i tempi di caricamento, perché i visitatori di ritorno non devono scaricare di nuovo a ogni richiesta file come immagini, CSS o JavaScript.
Aggiungi le regole a un file .htaccess. Posiziona il file nella directory a cui devono applicarsi le regole di cache, ad esempio in htdocs.
Un semplice esempio:
ExpiresActive On
ExpiresDefault "access plus 30 seconds"
Questo assegna a tutti i file una durata di cache di 30 secondi. Se un visitatore ricarica la pagina dopo più di 30 secondi, il browser richiede di nuovo i file al server.
Puoi anche definire la durata della cache per tipo di file:
ExpiresActive On
ExpiresDefault "access plus 1 hour"
ExpiresByType image/gif "access plus 1 hour"
ExpiresByType image/jpeg "access plus 1 hour"
ExpiresByType image/png "access plus 1 hour"
ExpiresByType text/html "access plus 4 minutes"
ExpiresByType text/plain "access plus 4 minutes"
ExpiresByType text/css "access plus 1 hour"
ExpiresByType application/javascript "access plus 1 hour"
Se vuoi agire solo su un tipo di file specifico, puoi definire una regola solo per quel tipo:
ExpiresActive On
ExpiresByType image/gif "access plus 1 minutes"
Adatta i valori al tuo sito. Tempi di cache brevi sono utili per i contenuti HTML che cambiano spesso. Per i file statici come immagini, CSS o JavaScript puoi solitamente usare tempi di cache più lunghi.
Se usi tempi di cache lunghi per CSS o JavaScript, cambia il nome dei file oppure usa parametri di versione quando li aggiorni. Altrimenti i visitatori potrebbero continuare a vedere una vecchia versione dalla cache del browser.
L'hotlinking si verifica quando un altro sito incorpora file direttamente dal tuo spazio web. Riguarda spesso immagini, video o download di grandi dimensioni.
Console ICBS: puoi attivare Hotlink protection dalla scheda Sicurezza → Hotlink protection del dominio, senza modificare il file a mano. Vedi Hotlink protection.
Puoi usare le regole seguenti per impedire che determinati tipi di file vengano incorporati da domini esterni:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com(/.*)?$ [NC]
RewriteRule \.(gif|jpg|jpeg|png|webp|zip|mpg)$ - [F,NC]
Sostituisci example.com con il tuo dominio. Devi proteggere il punto nel dominio con una barra rovesciata (escape).
Esempio:
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com(/.*)?$ [NC]
Nel menu vai su Servizi → Configurazione del server. Qui puoi abilitare o disabilitare singolarmente l'elenco delle directory per ogni cartella. Clicca sulla cartella e poi sul pulsante Configurazione del server. A questo punto puoi cliccare su Indice delle directory. Qui puoi abilitare o disabilitare l'indice. L'indice delle directory è disabilitato per impostazione predefinita.
Se i file devono poter essere incorporati anche da altri domini di tua proprietà, aggiungi ulteriori condizioni:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.net(/.*)?$ [NC]
RewriteRule \.(gif|jpg|jpeg|png|webp|zip|mpg)$ - [F,NC]
Usa questo metodo principalmente per proteggere immagini, video, archivi o altri file statici.
In genere non dovresti proteggere in questo modo i file HTML o PHP. Altrimenti i normali link da altri siti verso i tuoi contenuti potrebbero essere bloccati.
Tieni inoltre presente che l'HTTP referer non è sempre affidabile. Alcuni browser, firewall o estensioni per la privacy possono rimuoverlo o modificarlo.