Ottieni l'isolamento multiorigine e la protezione dalle fughe di dati tra siti durante l'interazione con i popup.
È disponibile un nuovo valore per Cross-Origin Opener Policy (COOP): restrict-properties
. Offre vantaggi in termini di sicurezza e semplifica l'adozione dell'isolamento multiorigine, consentendo al contempo al sito di interagire con popup di terze parti per pagamenti, autenticazione o altri casi d'uso.
Per iniziare a sperimentare con restrict-properties
, partecipa alla prova dell'origine a partire da Chrome 116.
Perché utilizzare restrict-properties
restrict-properties
ha due casi d'uso principali:
- Prevenzione delle fuga di dati tra siti senza interruzioni.
- Isolamento multiorigine del sito.
Previeni fughe di dati tra siti senza interruzioni
Per impostazione predefinita, qualsiasi sito web può aprire la tua applicazione in un popup e ottenere un riferimento.
Un sito web dannoso può sfruttare questa possibilità a proprio vantaggio per eseguire attacchi come fuga di dati tra siti.
Per ridurre questo rischio, puoi utilizzare l'intestazione Cross-Origin-Opener-Policy
(COOP).
Finora, le opzioni a tua disposizione per Cross-Origin-Opener-Policy
erano limitate. Puoi:
- Imposta
same-origin,
che blocca tutte le interazioni multiorigine con i popup. - Imposta
same-origin-allow-popups
, che blocca tutte le interazioni multiorigine che aprono il tuo sito in un popup. - Imposta
unsafe-none
, che consente tutte le interazioni multiorigine con i popup.
Ciò rendeva impossibile per i siti web che dovevano essere aperti in un popup e interagire con l'elemento di apertura per applicare COOP. Ciò ha lasciato i casi d'uso chiave, come il Single Sign-On e i pagamenti, non protetti dalle fughe di dati tra siti.
Cross-Origin-Opener-Policy: restrict-properties
risolve questo problema.
Con restrict-properties
non sono disponibili proprietà che possono essere utilizzate per il conteggio dei frame e altri attacchi di fughe di dati tra siti, ma la comunicazione di base tra Windows tramite postMessage
e closed
è consentita.
Ciò migliora la sicurezza di un sito, pur mantenendo i principali casi d'uso. Ad esempio:
- Se fornisci un servizio in un popup, la configurazione di
Cross-Origin-Opener-Policy: restrict-properties
ti protegge da una serie di attacchi di fuga di notizie tra siti. Puoi comunque aprire tutte le pagine che potevi aprire in precedenza. - Se hai bisogno di accedere a un popup multiorigine, l'impostazione di
Cross-Origin-Opener-Policy: restrict-properties
proteggerà in modo simile il tuo sito dal conteggio degli iframe. Potrai aprire lo stesso insieme di popup che puoi aprire oggi. - Se sia l'apertura sia l'aperto impostano l'intestazione e le pagine sono multiorigine, si comporta in modo simile a uno di loro che ha impostato l'intestazione. Se sono della stessa origine, l'accesso completo viene concesso.
Isolare il sito con isolamento multiorigine
Perché è necessario l'isolamento multiorigine
Alcune API web aumentano il rischio di attacchi side-channel come Spectre. Per ridurre questo rischio, i browser offrono un ambiente isolato basato su attivazione attiva chiamato isolamento multiorigine. Con uno stato isolato multiorigine, la pagina web può utilizzare funzionalità con privilegi come SharedArrayBuffer, performance.measureUserAgentSpecificMemory() e timer ad alta precisione con una risoluzione migliore, isolando l'origine da altre origini, a meno che non siano attivate.
Finora, per utilizzare queste API dovevi impostare Cross-Origin-Opener-Policy:
same-origin
. Tuttavia, questo interromperebbe qualsiasi flusso popup multiorigine di cui potresti aver bisogno, come Single Sign-On e Payments.
Ora puoi utilizzare Cross-Origin-Opener-Policy: restrict-properties
al posto di Cross-Origin-Opener-Policy: same-origin
per attivare l'isolamento multiorigine.
Anziché interrompere la relazione di apertura, si limita a limitarla al sottoinsieme minimo di comunicazione window.postMessage()
e window.closed
.
Potrai attivare l'isolamento multiorigine con le due intestazioni seguenti:
Cross-Origin-Opener-Policy: restrict-properties
Cross-Origin-Embedder-Policy: require-corp
o
Cross-Origin-Opener-Policy: restrict-properties
Cross-Origin-Embedder-Policy: credentialless
Scopri di più su credentialless
alla pagina Caricare risorse multiorigine senza intestazioni CORP utilizzando COEP: credentialless
.
Demo
Prova diverse opzioni di intestazione in questa demo dell'isolamento multiorigine.
Sperimenta con la prova dell'origine
Per sperimentare con Cross-Origin-Opener-Policy: restrict-properties
, attiva la prova dell'origine.
Supporto del browser
Al momento Cross-Origin-Opener-Policy: restrict-properties
è supportato
solo in Chrome. Altri browser sono attivamente coinvolti nella discussione per la standardizzazione.
Domande frequenti
Il mio sito web deve comunicare con i popup della stessa origine. Devo usare COOP: restrict-properties
per attivare l'isolamento multiorigine?
L'impostazione di COOP: restrict-properties
sia nel popup che nella pagina principale non causerà limitazioni. L'impostazione di questa opzione solo nel popup o solo nella pagina principale impedirà l'accesso a proprietà diverse da postMessage
e closed
nell'app di apertura, anche se hanno la stessa origine.
L'insieme di proprietà consentite è stato corretto?
In base ai feedback ricevuti finora, si sospetta che window.postMessage
e window.closed
siano sufficienti per la maggior parte dei flussi di lavoro, ma stiamo ancora valutando di aprirli ad altre proprietà. Se il tuo caso d'uso non può
essere risolto utilizzando solo postMessage
e closed
lascia il tuo feedback
nel thread dell'intent per l'esperimento.
Risorse
- Rendere il tuo sito web "isolato multiorigine" utilizzando COOP e COEP
- Perché è necessario "isolamento multiorigine" per funzionalità potenti
- Una guida per attivare l'isolamento multiorigine
- Aggiornamenti di SharedArraybu in Chrome 88 per Android e Chrome 92 per computer
- Carica risorse multiorigine senza intestazioni CORP utilizzando
COEP: credentialless
- Sviluppatori Chrome - Prova dell'origine iframe anonima: incorpora facilmente iframe in ambienti COEP - Sviluppatori Chrome