Nuovo valore della sandbox allow-same-site-none-cookies a partire da Chrome 135

Natalia Markoborodova
Natalia Markoborodova

Da Chrome 135, puoi utilizzare il nuovo valore sandbox: allow-same-site-none-cookies. Quando questo criterio è specificato e i cookie di terze parti non sono disponibili, il browser invierà solo cookie SameSite=None nelle richieste HTTP provenienti da iframe in sandbox proprietari.

Che cos'è un iframe in sandbox?

Gli iframe con sandbox sono iframe con limitazioni speciali. Sono considerati di origine null, opaca. Per impostazione predefinita, le funzionalità potenzialmente dannose come script, moduli e popup non sono disponibili all'interno di iframe con sandbox.

Utilizza l'attributo sandbox per specificare le funzionalità che un iframe in sandbox deve avere a disposizione. Ad esempio:

 <iframe sandbox="allow-scripts" src="example-sandboxed-frame.html"/>

La sandbox è sempre una buona idea, in quanto ti consente di selezionare in modo granulare le autorizzazioni necessarie per il caricamento dei contenuti incorporati, limitando al contempo l'ambito dei potenziali exploit.

Perché abbiamo bisogno di queste nuove norme?

Prima dell'introduzione di allow-same-site-none-cookies, era possibile configurare due scenari di cookie in un iframe con limitazione tramite sandbox:

  • Senza il allow-same-origin token nell'attributo sandbox, l'origine dell'iframe viene serializzata come null, rendendo cross-site tutte le richieste provenienti dalla pagina in sandbox. In questo caso, nelle richieste verranno inclusi solo i cookie con SameSite=None.
  • Con il token allow-same-origin nell'attributo sandbox, le richieste vengono considerate come provenienti dall'origine reale dell'iframe, consentendo l'invio di cookie con qualsiasi valore SameSite.

Con i cookie di terze parti bloccati, un iframe in sandbox privo di allow-same-origin non è in grado di inviare cookie, a meno che non attivi allow-same-site-none-cookies.

Un iframe con allow-same-origin potrà comunque includere i cookie nelle richieste all'interno dello stesso sito, anche quando i cookie di terze parti sono bloccati. Tuttavia, il barattolo dei cookie dell'intera origine verrebbe esposto ad attività web potenzialmente dannose.

Con allow-same-site-none-cookies, un iframe può inviare cookie SameSite=None nelle richieste HTTP, mentre i cookie SameSite=Strict e SameSite=Lax potenzialmente sensibili non verranno inclusi.

Esempio pratico

Prendiamo ad esempio un sito, practice-coding.example, che consente agli utenti di creare ed eseguire progetti di programmazione personalizzati e incorporare il codice di altri utenti. Per utilizzare il servizio, gli utenti devono accedere, con la conseguente impostazione di un cookie di sessione SameSite=Strict.

Un altro utente crea un progetto, practice-coding.example/cookie-theft, che altri utenti possono incorporare inconsapevolmente come iframe nei propri progetti. Se i cookie SameSite=Strict e SameSite=Lax sono esposti all'iframe practice-coding.example/cookie-theft, l'utente malintenzionato potrebbe rubare i cookie di sessione di altri utenti.

In questo caso, il proprietario del sito potrebbe voler limitare l'accesso ai cookie potenzialmente sensibili. Tuttavia, potrebbe comunque voler consentire i cookie di SameSite=None all'interno di iframe in sandbox. Ad esempio, practice-coding.example/coding-interview un iframe con sandbox potrebbe richiedere SameSite=None cookie per consentire ai candidati di rivedere il loro codice. allow-same-site-none-cookies impedisce l'esposizione dell'intero cookie jar, consentendo al contempo i cookie SameSite=None necessari in modo selettivo.

Come faccio ad autorizzare solo SameSite=None all'interno di frame con sandbox proprietari?

Per attivare i cookie SameSite=None nelle richieste provenienti da pagine in sandbox proprietarie, specifica il token allow-same-site-none-cookies nel tag iframe. Ad esempio:

 <iframe sandbox="allow-same-site-none-cookies" src="example-sandboxed-page.html"/>

Puoi anche impostare un criterio allow-same-site-none-cookies con un'Content-Security-Policy intestazione HTTP:

Content-Security-Policy: sandbox allow-same-site-none-cookies;

Prova tu stesso con la nostra demo.

Coinvolgere e condividere feedback

Invia una segnalazione per condividere feedback o segnalare problemi oppure partecipa alla discussione su GitHub.