Best practice per la sicurezza web
Cloud CDN e Cloud Load Balancing possono aiutarti a soddisfare le best practice relative alla sicurezza web, che tu stia pubblicando contenuti da istanze Compute Engine, un bucket Cloud Storage o un'origine esterna situata all'esterno di Google Cloud.
Imposta intestazioni di sicurezza
Le specifiche HTTP hanno una serie di intestazioni che controllano quanto segue:
- Comportamento dei clienti
- Come vengono incorporati i contenuti
- Modalità di pubblicazione dei contenuti nei vari domini
- Utilizzo di TLS (HTTPS) quando ci si connette a quel dominio
Questi controlli sono in genere rappresentati come intestazioni di risposta HTTP, che puoi impostare per ogni backend (origine, in termini di CDN) come intestazioni della risposta personalizzata per il bilanciatore del carico HTTP(S) esterno e il deployment di Cloud CDN.
Se usi Cloud Storage e pubblichi contenuti web dal tuo bucket, puoi usare Cloud CDN prima del bucket di archiviazione per impostare le intestazioni per la sicurezza web e memorizzare nella cache i contenuti più apprezzati.
Le intestazioni di sicurezza web più utili sono definite nella tabella seguente.
Nome intestazione | Descrizione | Esempio di utilizzo |
---|---|---|
Strict-Transport-Security (HSTS) |
Assicura che i tuoi domini abbiano certificati SSL (TLS) validi prima di impostare questa intestazione. Informa i client che devono connettersi al tuo dominio direttamente tramite HTTPS (SSL/TLS), evitando la necessità di reindirizzare da HTTP a HTTPS, che è più lento e introduce il rischio di un attacco in mezzo. L'impostazione di questa intestazione è irreversibile. Dopo aver memorizzato nella cache questa intestazione, i client di browser moderni non tentano di eseguire connessioni non HTTPS e gli utenti non possono accedere ai domini per cui hanno ricevuto questa intestazione, anche se SSL non è attivo. Questo comportamento impedisce a un utente malintenzionato di eseguire il downgrade del protocollo sicuro al protocollo HTTP non protetto (noto come attacco di downgrade).
Quando pubblichi l'intestazione |
Richiedi ai client di connettersi direttamente su HTTPS per tutte le connessioni future, memorizzando nella cache questa istruzione per un massimo di due anni:
|
X-Frame-Options |
Indica se un browser può eseguire il rendering di una pagina in un <frame>, <iframe>, <embed>, or <object>. Questo contribuisce a prevenire gli attacchi di tipo click-jacking, impedendo l'incorporamento dei contenuti in altri siti. |
Nega tutto l'iframe del sito: X-Frame-Options: DENY
Consenti solo al tuo sito di eseguire l'iframe (incorporamento) stesso: |
Content-Security-Policy
|
Per valutare i criteri di sicurezza del tuo sito, puoi utilizzare lo strumento CSP Evaluator di Google. | Non consentire script in linea e caricare solo script tramite HTTPS:
Content-Security-Policy: default-src https:
|
Presta attenzione quando introduci nuove intestazioni di sicurezza per i siti web esistenti, in quanto potrebbero interrompere script di terze parti, contenuti incorporati (ad esempio negli iframe) o altri aspetti dei siti. Prima di apportare modifiche al traffico di produzione, consigliamo di creare una seconda istanza di bucket o servizio di backend e test.
Puoi trovare ulteriori informazioni sulle intestazioni di sicurezza web e sulle best practice su web.dev e sul sito di infosec di Mozilla.
TLS e gestione dei certificati
I certificati gestiti hanno le seguenti caratteristiche:
- Vengono forniti senza costi aggiuntivi
- Deployment facile sui bilanciatori del carico
- Rinnovo automatico
- sono distribuiti a livello globale in tutte le località perimetrali di Google
TLS fornisce autenticità convalidando che i dati non siano stati modificati in transito. I certificati TLS assicurano la riservatezza assicurandosi che un'intercettazione non sia in grado di determinare cosa viene scambiato tra utenti e server. Ciò è importante per la privacy e la sicurezza degli utenti.
Con i certificati SSL puoi usufruire di moderni protocolli di trasporto, come HTTP/2 e il protocollo QUIC di Google, che richiedono entrambi il protocollo SSL (TLS). Questi protocolli migliorano direttamente le prestazioni dei contenuti web, la distribuzione di contenuti multimediali (come il video in streaming) e l'affidabilità sulle reti congestionate.
Google Cloud supporta i moderni protocolli TLS (come TLS 1.3) nei servizi di Cloud Load Balancing e Cloud CDN.
Puoi utilizzare i criteri SSL per aumentare la versione minima di TLS. Se non hai bisogno di supportare client meno recenti, ad esempio dispositivi incorporati o client non browser precedenti (più di 10 anni), ti consigliamo di utilizzare la versione 1.2 di TLS. A livello globale, TLS v1.0 e TLS v1.1 rappresentano meno dello 0,5% delle connessioni in Google Cloud.
Se devi identificare o associare client specifici a versioni obsolete di TLS, puoi utilizzare la variabile {tls_version}
in un'intestazione della richiesta. Potrai quindi registrare queste informazioni.
Passaggi successivi
- Per verificare se Cloud CDN sta pubblicando risposte dalla cache, consulta Visualizzazione dei log.
- Per informazioni sui contenuti memorizzabili o non memorizzabili nella cache, consulta la panoramica sulla memorizzazione nella cache.
- Per conoscere i punti di presenza di Cloud CDN, vedi Posizioni della cache.