Riferimento rapido per le intestazioni di sicurezza

Scopri di più sulle intestazioni che possono proteggere il tuo sito e cercare rapidamente i dettagli più importanti.

Questo articolo elenca le intestazioni di sicurezza più importanti che puoi utilizzare per proteggere il tuo sito web. Utilizzalo per comprendere le funzionalità di sicurezza basate sul web, imparare a implementarle sul tuo sito web e come riferimento quando hai bisogno di un promemoria.

Intestazioni di sicurezza consigliate per i siti web che gestiscono dati utente sensibili:
Content Security Policy (CSP)
Trusted Types
Intestazioni di sicurezza consigliate per tutti i siti web:
X-Content-Type-Options
X-Frame-Options
Cross-Origin Resource Policy (CORP)
Cross-Origin Opener Policy (COOP)
HTTP Strict Transport Security (HSTS)
Intestazioni di sicurezza per siti web con funzionalità avanzate:
Condivisione delle risorse tra origini (CORS)
Cross-Origin Embedder Policy (COEP)
Minacce note sul web
Prima di entrare nel dettaglio delle intestazioni di sicurezza, scopri le minacce note sul web e perché dovresti utilizzare queste intestazioni di sicurezza.

Prima di entrare nel dettaglio delle intestazioni di sicurezza, scopri le minacce note sul web e perché dovresti utilizzare queste intestazioni di sicurezza.

Proteggere il sito dalle vulnerabilità di iniezione

Le vulnerabilità di iniezione si verificano quando i dati non attendibili elaborati dalla tua applicazione possono influire sul suo comportamento e, in genere, portare all'esecuzione di script controllati da un malintenzionato. La vulnerabilità più comune causata da bug di iniezione è il cross-site scripting (XSS) nelle sue varie forme, tra cui XSS riflesso, XSS memorizzato, XSS basato su DOM e altre varianti.

Una vulnerabilità XSS può in genere dare a un malintenzionato l'accesso completo ai dati utente elaborati dall'applicazione e a qualsiasi altra informazione ospitata nella stessa origine web.

Le difese tradizionali contro le iniezioni includono l'uso coerente di sistemi di modelli HTML con escape automatico, l'evitare l'uso di API JavaScript pericolose e l'elaborazione corretta dei dati utente ospitando i caricamenti di file in un dominio separato e sanificando l'HTML controllato dall'utente.

  • Utilizza Content Security Policy (CSP) per controllare quali script possono essere eseguiti dalla tua applicazione per ridurre il rischio di iniezioni.
  • Utilizza Trusted Types per applicare la sanificazione dei dati passati a pericolose API JavaScript.
  • Utilizza X-Content-Type-Options per impedire al browser di interpretare erroneamente i tipi MIME delle risorse del tuo sito web, il che può portare a all'esecuzione di script.

Isolare il tuo sito da altri siti web

L'apertura del web consente ai siti web di interagire tra loro in modi che possono violare le aspettative di sicurezza di un'applicazione. Ciò include l'esecuzione imprevista di richieste autenticate o l'incorporamento di dati da un'altra applicazione nel documento dell'attaccante, consentendo a quest'ultimo di modificare o leggere i dati dell'applicazione.

Le vulnerabilità comuni che compromettono l'isolamento web includono clickjacking, cross-site request forgery (CSRF), cross-site script inclusion (XSSI) e varie perdite cross-site.

Post-Spectre Web Development è un'ottima lettura se ti interessano questi header.

Crea un sito web potente in modo sicuro

Spectre rende potenzialmente leggibili tutti i dati caricati nello stesso gruppo di contesti di navigazione nonostante i criteri di stessa origine. I browser limitano le funzionalità che potrebbero sfruttare la vulnerabilità alla base di un ambiente speciale chiamato "isolamento cross-origin". Con l'isolamento cross-origin, puoi utilizzare funzionalità avanzate come SharedArrayBuffer.

Criptare il traffico verso il tuo sito

I problemi di crittografia si verificano quando un'applicazione non cripta completamente i dati in transito, consentendo agli aggressori che intercettano le comunicazioni di conoscere le interazioni dell'utente con l'applicazione.

Una crittografia insufficiente può verificarsi nei seguenti casi: mancato utilizzo di HTTPS, contenuti misti, impostazione di cookie senza l'attributo Secure (o il prefisso __Secure), o logica di convalida CORS lassista.

Policy di sicurezza del contenuto (CSP)

Il cross-site scripting (XSS) è un attacco in cui una vulnerabilità di un sito web consente l'inserimento e l'esecuzione di uno script dannoso.

Content-Security-Policy fornisce un ulteriore livello per mitigare gli attacchi XSS limitando gli script che possono essere eseguiti dalla pagina.

Ti consigliamo di attivare la CSP restrittiva utilizzando uno dei seguenti approcci:

  • Se esegui il rendering delle pagine HTML sul server, utilizza una CSP rigida basata su nonce.
  • Se il codice HTML deve essere pubblicato in modo statico o memorizzato nella cache, ad esempio se si tratta di un'applicazione a una sola pagina, utilizza una CSP rigida basata su hash.

Esempio di utilizzo: una CSP basata su nonce

Content-Security-Policy:
  script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
  object-src 'none';
  base-uri 'none';
Come utilizzare CSP

1. Utilizzare una CSP rigida basata su nonce {: #nonce-based-csp}

Se esegui il rendering delle pagine HTML sul server, utilizza una CSP rigida basata su nonce.

Genera un nuovo valore nonce dello script per ogni richiesta lato server e imposta il seguente header:

file di configurazione del server

Content-Security-Policy:
  script-src 'nonce-{RANDOM1}' 'strict-dynamic' https: 'unsafe-inline';
  object-src 'none';
  base-uri 'none';

In HTML, per caricare gli script, imposta l'attributo nonce di tutti i tag <script> sulla stessa stringa {RANDOM1}.

index.html

<script nonce="{RANDOM1}" src="https://example.com/script1.js"></script>
<script nonce="{RANDOM1}">
  // Inline scripts can be used with the <code>nonce</code> attribute.
</script>

Google Foto è un buon esempio di CSP rigorosa basata su nonce. Utilizza DevTools per vedere come viene utilizzato.

2. Utilizza una CSP restrittiva basata su hash {: #hash-based-csp}

Se il codice HTML deve essere pubblicato staticamente o memorizzato nella cache, ad esempio se stai creando un'applicazione a pagina singola, utilizza una CSP rigida basata su hash.

file di configurazione del server

Content-Security-Policy:
  script-src 'sha256-{HASH1}' 'sha256-{HASH2}' 'strict-dynamic' https: 'unsafe-inline';
  object-src 'none';
  base-uri 'none';

In HTML, devi incorporare gli script per applicare una norma basata sull'hash, perché la maggior parte dei browser non supporta l'hashing di script esterni.

index.html

<script>
...// your script1, inlined
</script>
<script>
...// your script2, inlined
</script>

Per caricare script esterni, leggi "Caricare dinamicamente gli script di origine" nella sezione Opzione B: intestazione di risposta CSP basata sull'hash.

CSP Evaluator è un buon strumento per valutare il tuo CSP, ma allo stesso tempo un buon esempio di CSP rigoroso basato su nonce. Utilizza DevTools per vedere come viene utilizzato.

Browser supportati

Altri aspetti da considerare in merito al CSP

Scopri di più

Trusted Types

L'XSS basata sul DOM è un attacco in cui vengono passati dati dannosi a un sink che supporta l'esecuzione di codice dinamico come eval() o .innerHTML.

I tipi attendibili forniscono gli strumenti per scrivere, rivedere la sicurezza e gestire applicazioni prive di DOM XSS. Possono essere abilitati tramite CSP e rendere il codice JavaScript sicuro per impostazione predefinita limitando le API web pericolose in modo che accettino solo un oggetto speciale: un tipo attendibile.

Per creare questi oggetti, puoi definire policy di sicurezza in cui puoi assicurarti che le regole di sicurezza (come l'escape o la sanificazione) vengano applicate in modo coerente prima che i dati vengano scritti nel DOM. Queste norme sono quindi gli unici punti nel codice che potrebbero potenzialmente introdurre DOM XSS.

Esempi di utilizzo

Content-Security-Policy: require-trusted-types-for 'script'
// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
  // Name and create a policy
  const policy = trustedTypes.createPolicy('escapePolicy', {
    createHTML: str => {
      return str.replace(/\</g, '&lt;').replace(/>/g, '&gt;');
    }
  });
}

// Assignment of raw strings is blocked by Trusted Types.
el.innerHTML = &#39;some string&#39;; // This throws an exception.

// Assignment of Trusted Types is accepted safely.
const escaped = policy.createHTML(&#39;&lt;img src=x onerror=alert(1)&gt;&#39;);
el.innerHTML = escaped;  // &#39;&amp;lt;img src=x onerror=alert(1)&amp;gt;&#39;

Come utilizzare Trusted Types

  1. Applica Trusted Types per i sink DOM pericolosi Intestazione CSP e Trusted Types:

    Content-Security-Policy: require-trusted-types-for 'script'

    Attualmente 'script' è l'unico valore accettabile per la direttiva require-trusted-types-for.

    Naturalmente, puoi combinare i tipi attendibili con altre direttive CSP:

Unione di una CSP basata su nonce da sopra con Trusted Types:

Content-Security-Policy:
  script-src &#39;nonce-{RANDOM1}&#39; &#39;strict-dynamic&#39; https: &#39;unsafe-inline&#39;;
  object-src &#39;none&#39;;
  base-uri &#39;none&#39;;
  require-trusted-types-for &#39;script&#39;;

<aside class="note"><b>Nota: </b> puoi limitare i nomi dei criteri Trusted Types consentiti impostando una direttiva <code>trusted-types</code> aggiuntiva (ad esempio, <code>trusted-types myPolicy</code>). Tuttavia, non è un requisito. </aside>

  1. Definisci una policy

    Norme:

    // Feature detection
    if (window.trustedTypes && trustedTypes.createPolicy) {
      // Name and create a policy
      const policy = trustedTypes.createPolicy('escapePolicy', {
        createHTML: str => {
          return str.replace(/\/g, '>');
        }
      });
    }
  2. Applica la policy

    Utilizza la policy quando scrivi dati nel DOM:

    // Assignment of raw strings are blocked by Trusted Types.
    el.innerHTML = &#39;some string&#39;; // This throws an exception.</p>
    
    <p>// Assignment of Trusted Types is accepted safely.
    const escaped = policy.createHTML(&#39;<img src="x" onerror="alert(1)">&#39;);
    el.innerHTML = escaped;  // &#39;&lt;img src=x onerror=alert(1)&gt;&#39;

    Con require-trusted-types-for 'script', l'utilizzo di un tipo attendibile è un requisito. L'utilizzo di qualsiasi API DOM pericolosa con una stringa genererà un errore.

Browser supportati

Scopri di più

X-Content-Type-Options

Quando un documento HTML dannoso viene pubblicato dal tuo dominio (ad esempio, se un'immagine caricata in un servizio di foto contiene un markup HTML valido), alcuni browser lo considerano un documento attivo e consentono l'esecuzione di script nel contesto dell'applicazione, il che porta a un bug di cross-site scripting.

X-Content-Type-Options: nosniff lo impedisce comunicando al browser che il tipo MIME impostato nell'intestazione Content-Type per una determinata risposta è corretto. Questa intestazione è consigliata per tutte le tue risorse.

Esempio di utilizzo

X-Content-Type-Options: nosniff
Come utilizzare X-Content-Type-Options

X-Content-Type-Options: nosniff è consigliato per tutte le risorse pubblicate dal tuo server insieme all'intestazione Content-Type corretta.

X-Content-Type-Options: nosniff

Esempio di intestazioni inviate con un documento HTML

X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8

Browser supportati

Browser Support

  • Chrome: 64.
  • Edge: 12.
  • Firefox: 50.
  • Safari: 11.

Source

Scopri di più

X-Frame-Options

Se un sito web dannoso può incorporare il tuo sito come iframe, ciò potrebbe consentire agli aggressori di richiamare azioni non intenzionali da parte dell'utente con il clickjacking. Inoltre, in alcuni casi gli attacchi di tipo Spectre danno ai siti web dannosi la possibilità di conoscere i contenuti di un documento incorporato.

X-Frame-Options indica se un browser deve essere autorizzato a eseguire il rendering di una pagina in un <frame>, <iframe>, <embed> o <object>. Tutti i documenti consigliano di inviare questa intestazione per indicare se consentono l'incorporamento da parte di altri documenti.

Esempio di utilizzo

X-Frame-Options: DENY
Come utilizzare X-Frame-Options

Tutti i documenti non progettati per essere incorporati devono utilizzare l'intestazione X-Frame-Options.

Puoi provare l'effetto delle seguenti configurazioni sul caricamento di un iframe in questa demo. Modifica il menu a discesa X-Frame-Options e fai clic sul pulsante Ricarica l'iframe.

Protegge il tuo sito web dall'incorporamento da parte di altri siti web

Nega l'incorporamento da parte di altri documenti.

X-Frame-Options: DENY
X-Frame-Options: DENY

Protegge il tuo sito web dall'incorporamento da parte di siti web cross-origin

Consenti l'incorporamento solo da documenti con stessa origine.

X-Frame-Options: SAMEORIGIN

Browser supportati

Browser Support

  • Chrome: 4.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 4.

Source

Scopri di più

Policy di condivisione delle risorse tra origini (CORP)

Un malintenzionato può incorporare risorse di un'altra origine, ad esempio dal tuo sito, per ottenere informazioni su di esse sfruttando le perdite di dati cross-site basate sul web.

Cross-Origin-Resource-Policy mitiga questo rischio indicando l'insieme di siti web da cui può essere caricato. L'intestazione assume uno dei tre valori: same-origin, same-site e cross-origin. Tutte le risorse sono consigliate per inviare questo header per indicare se consentono il caricamento da parte di altri siti web.

Esempio di utilizzo

Cross-Origin-Resource-Policy: same-origin
Come utilizzare CORP

Ti consigliamo di pubblicare tutte le risorse con una delle seguenti tre intestazioni.

Puoi provare in che modo le seguenti configurazioni influiscono sul caricamento delle risorse in un ambiente Cross-Origin-Embedder-Policy: require-corp in questa demo. Modifica il menu a discesa Cross-Origin-Resource-Policy e fai clic sul pulsante Ricarica l'iframe o Ricarica l'immagine per visualizzare l'effetto.

Consenti il caricamento delle risorse cross-origin

È consigliabile che i servizi simili a CDN applichino cross-origin alle risorse (poiché di solito vengono caricate da pagine cross-origin), a meno che non vengano già pubblicate tramite CORS, che ha un effetto simile.

Cross-Origin-Resource-Policy: cross-origin
Cross-Origin-Resource-Policy: cross-origin

Limita le risorse da caricare da same-origin

same-origin deve essere applicato alle risorse che devono essere caricate solo dalle pagine della stessa origine. Devi applicare questa impostazione alle risorse che includono informazioni sensibili sull'utente o alle risposte di un'API che deve essere chiamata solo dalla stessa origine.

Tieni presente che le risorse con questa intestazione possono comunque essere caricate direttamente, ad esempio accedendo all'URL in una nuova finestra del browser. Il criterio di condivisione delle risorse tra origini protegge solo la risorsa dall'incorporamento da parte di altri siti web.

Cross-Origin-Resource-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin

Limita le risorse da caricare da same-site

same-site è consigliato per le risorse simili a quelle sopra indicate, ma destinate a essere caricate da altri sottodomini del tuo sito.

Cross-Origin-Resource-Policy: same-site
Cross-Origin-Resource-Policy: same-site

Browser supportati

Browser Support

  • Chrome: 73.
  • Edge: 79.
  • Firefox: 74.
  • Safari: 12.

Source

Scopri di più

Cross-Origin Opener Policy (COOP)

Il sito web di un malintenzionato può aprire un altro sito in una finestra popup per ottenere informazioni su di esso sfruttando le perdite di dati cross-site basate sul web. In alcuni casi, ciò potrebbe anche consentire lo sfruttamento di attacchi side-channel basati su Spectre.

L'intestazione Cross-Origin-Opener-Policy consente a un documento di isolarsi dalle finestre multiorigine aperte tramite window.open() o un link con target="_blank" senza rel="noopener". Di conseguenza, qualsiasi opener multiorigine del documento non avrà alcun riferimento e non potrà interagire con esso.

Esempio di utilizzo

Cross-Origin-Opener-Policy: same-origin-allow-popups
Come utilizzare COOP

Puoi provare in che modo le seguenti configurazioni influiscono sulla comunicazione con una finestra popup multiorigine in questa demo. Modifica il menu a discesa Cross-Origin-Opener-Policy sia per il documento che per la finestra popup, fai clic sul pulsante Apri un popup e poi su Invia un postMessage per verificare se il messaggio viene effettivamente recapitato.

Isolare un documento dalle finestre multiorigine

L'impostazione same-origin isola il documento dalle finestre dei documenti multiorigine.

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin

Isola un documento dalle finestre multiorigine, ma consenti i popup

L'impostazione same-origin-allow-popups consente a un documento di conservare un riferimento alle sue finestre popup, a meno che non imposti COOP con same-origin o same-origin-allow-popups. Ciò significa che same-origin-allow-popups può comunque proteggere il documento dal riferimento quando viene aperto come finestra popup, ma consentirgli di comunicare con i propri popup.

Cross-Origin-Opener-Policy: same-origin-allow-popups
Cross-Origin-Opener-Policy: same-origin-allow-popups

Consenti a una finestra multiorigine di fare riferimento a un documento

unsafe-none è il valore predefinito, ma puoi indicare esplicitamente che questo documento può essere aperto da una finestra multiorigine e mantenere l'accesso reciproco.

Cross-Origin-Opener-Policy: unsafe-none
Cross-Origin-Opener-Policy: unsafe-none

Report sui pattern incompatibili con COOP

Puoi ricevere report quando COOP impedisce le interazioni tra finestre con l'API di reporting.

Cross-Origin-Opener-Policy: same-origin; report-to="coop"

COOP supporta anche una modalità di solo report, in modo da poter ricevere report senza bloccare effettivamente la comunicazione tra documenti cross-origin.

Cross-Origin-Opener-Policy-Report-Only: same-origin; report-to="coop"

Browser supportati

Browser Support

  • Chrome: 83.
  • Edge: 83.
  • Firefox: 79.
  • Safari: 15.2.

Source

Scopri di più

Condivisione delle risorse tra origini (CORS)

A differenza di altri elementi di questo articolo, la condivisione delle risorse tra origini (CORS) non è un'intestazione, ma un meccanismo del browser che richiede e consente l'accesso a risorse multiorigine.

Per impostazione predefinita, i browser applicano il criterio della stessa origine per impedire a una pagina web di accedere a risorse multiorigine. Ad esempio, quando viene caricata un'immagine multiorigine, anche se viene visualizzata visivamente sulla pagina web, il codice JavaScript della pagina non ha accesso ai dati dell'immagine. Il fornitore di risorse può allentare le restrizioni e consentire ad altri siti web di leggere la risorsa attivando CORS.

Esempio di utilizzo

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
Come utilizzare CORS

Prima di esaminare la configurazione di CORS, è utile comprendere la distinzione tra i tipi di richieste. A seconda dei dettagli della richiesta, una richiesta verrà classificata come richiesta semplice o richiesta preflight.

Criteri per una richiesta semplice:

  • Il metodo è GET, HEAD o POST.
  • Le intestazioni personalizzate includono solo Accept, Accept-Language, Content-Language e Content-Type.
  • Il valore Content-Type è application/x-www-form-urlencoded, multipart/form-data o text/plain.

Tutto il resto viene classificato come richiesta preflight. Per ulteriori dettagli, consulta Condivisione delle risorse tra origini (CORS) - HTTP | MDN.

Richiesta semplice

Quando una richiesta soddisfa i criteri di richiesta semplice, il browser invia una richiesta multiorigine con un'intestazione Origin che indica l'origine della richiesta.

Intestazione della richiesta di esempio

Get / HTTP/1.1
Origin: https://example.com

Intestazione della risposta di esempio

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
  • Access-Control-Allow-Origin: https://example.com indica che https://example.com può accedere ai contenuti della risposta. Le risorse destinate a essere leggibili da qualsiasi sito possono impostare questa intestazione su *, nel qual caso il browser richiederà solo che la richiesta venga effettuata senza credenziali.
  • Access-Control-Allow-Credentials: true indica che le richieste che contengono credenziali (cookie) sono autorizzate a caricare la risorsa. In caso contrario, le richieste autenticate verranno rifiutate anche se l'origine della richiesta è presente nell'intestazione Access-Control-Allow-Origin.

Puoi provare l'effetto della richiesta semplice sul caricamento delle risorse in un ambiente Cross-Origin-Embedder-Policy: require-corp in questa demo. Seleziona la casella di controllo Condivisione di risorse tra origini diverse e fai clic sul pulsante Ricarica l'immagine per visualizzare l'effetto.

Richieste preflight

Una richiesta preflight è preceduta da una richiesta OPTIONS per verificare se la richiesta successiva può essere inviata.

Intestazione della richiesta di esempio

OPTIONS / HTTP/1.1
Origin: https://example.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-PINGOTHER, Content-Type
  • Access-Control-Request-Method: POST consente di effettuare la seguente richiesta con il metodo POST.
  • Access-Control-Request-Headers: X-PINGOTHER, Content-Type consente al richiedente di impostare le intestazioni HTTP X-PINGOTHER e Content-Type nella richiesta successiva.

Esempi di intestazioni di risposta

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
Access-Control-Max-Age: 86400
  • Access-Control-Allow-Methods: POST, GET, OPTIONS indica che le richieste successive possono essere effettuate con i metodi POST, GET e OPTIONS.
  • Access-Control-Allow-Headers: X-PINGOTHER, Content-Type indica che le richieste successive possono includere le intestazioni X-PINGOTHER e Content-Type.
  • Access-Control-Max-Age: 86400 indica che il risultato della richiesta preflight può essere memorizzato nella cache per 86.400 secondi.

Browser supportati

Browser Support

  • Chrome: 4.
  • Edge: 12.
  • Firefox: 3.5.
  • Safari: 4.

Source

Scopri di più

Policy sull'incorporamento multiorigine (COEP)

Per ridurre la possibilità che gli attacchi basati su Spectre rubino risorse multiorigine, funzionalità come SharedArrayBuffer o performance.measureUserAgentSpecificMemory() sono disattivate per impostazione predefinita.

Cross-Origin-Embedder-Policy: require-corp impedisce a documenti e worker di caricare risorse multiorigine come immagini, script, fogli di stile, iframe e altri, a meno che queste risorse non attivino esplicitamente il caricamento tramite intestazioni CORS o CORP. COEP può essere combinato conCross-Origin-Opener-Policy per attivare l'isolamento cross-origin di un documento.

Utilizza Cross-Origin-Embedder-Policy: require-corp quando vuoi attivare l'isolamento multiorigine per il tuo documento.

Esempio di utilizzo

Cross-Origin-Embedder-Policy: require-corp
Come utilizzare COEP

Esempi di utilizzo

COEP accetta un unico valore di require-corp. Inviando questa intestazione, puoi indicare al browser di bloccare il caricamento delle risorse che non vengono attivate tramite CORS o CORP.

Come funziona COEP

Puoi provare in che modo le seguenti configurazioni influiscono sul caricamento delle risorse in questa demo. Modifica il menu a discesa Cross-Origin-Embedder-Policy, il menu a discesa Cross-Origin-Resource-Policy, la casella di controllo Solo report e così via per vedere come influiscono sul caricamento delle risorse. Inoltre, apri la demo dell'endpoint di reporting per verificare se le risorse bloccate vengono segnalate.

Abilitare l'isolamento tra origini

Attiva l'isolamento multiorigine inviando Cross-Origin-Embedder-Policy: require-corp insieme a Cross-Origin-Opener-Policy: same-origin.

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

Segnalare risorse incompatibili con COEP

Puoi ricevere report sulle risorse bloccate causate da COEP con l'API Reporting.

Cross-Origin-Embedder-Policy: require-corp; report-to="coep"

COEP supporta anche la modalità solo report, in modo da poter ricevere report senza bloccare effettivamente il caricamento delle risorse.

Cross-Origin-Embedder-Policy-Report-Only: require-corp; report-to="coep"

Browser supportati

Browser Support

  • Chrome: 83.
  • Edge: 83.
  • Firefox: 79.
  • Safari: 15.2.

Source

Scopri di più

HTTP Strict Transport Security (HSTS)

La comunicazione tramite una connessione HTTP semplice non è criptata, il che rende i dati trasferiti accessibili agli intercettatori a livello di rete.

L'intestazione Strict-Transport-Security comunica al browser che non deve mai caricare il sito utilizzando HTTP e deve utilizzare HTTPS. Una volta impostato, il browser utilizzerà HTTPS anziché HTTP per accedere al dominio senza reindirizzamento per una durata definita nell'intestazione.

Esempio di utilizzo

Strict-Transport-Security: max-age=31536000
Come utilizzare HSTS

Tutti i siti web che eseguono la transizione da HTTP a HTTPS devono rispondere con un'intestazione Strict-Transport-Security quando viene ricevuta una richiesta con HTTP.

Strict-Transport-Security: max-age=31536000

Browser supportati

Browser Support

  • Chrome: 4.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 7.

Source

Scopri di più

Per approfondire