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

Natalia Markoborodova
Natalia Markoborodova

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

Che cos'è un iframe con sandbox?

Gli iframe con sandbox sono iframe con limitazioni speciali. Vengono trattati come se avessero un'origine null, opaca. Per impostazione predefinita, le funzionalità potenzialmente dannose come script, moduli e popup non sono disponibili all'interno degli iframe con sandbox.

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

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

Il sandboxing è sempre una buona idea, in quanto consente di selezionare in modo granulare le autorizzazioni necessarie per il caricamento corretto dei contenuti incorporati, limitando l'ambito di potenziali exploit.

Perché abbiamo bisogno di queste nuove norme?

Prima dell'introduzione di allow-same-site-none-cookies, potevi configurare due scenari di cookie all'interno di un iframe sandbox:

  • Senza il token allow-same-origin nell'attributo sandbox, l'origine dell'iframe viene serializzata come null, rendendo tutte le richieste dalla pagina in sandbox cross-site. 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 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 tu non attivi allow-same-site-none-cookies.

Un iframe con allow-same-origin potrà comunque includere i cookie nelle richieste dello stesso sito, anche quando i cookie di terze parti sono bloccati. Tuttavia, il contenitore dei cookie dell'intera origine sarebbe 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

Prendi in considerazione 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, il che comporta l'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 loro 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 scenario, il proprietario del sito potrebbe voler limitare l'accesso ai cookie potenzialmente sensibili. Tuttavia, potrebbero comunque voler consentire i cookie SameSite=None all'interno degli iframe in sandbox. Ad esempio, l'iframe con sandbox practice-coding.example/coding-interview potrebbe richiedere SameSite=None cookie per consentire ai candidati di rivedere il proprio codice. allow-same-site-none-cookies impedisce l'esposizione dell'intero contenitore dei cookie consentendo selettivamente i cookie SameSite=None necessari.

Come faccio a consentire solo SameSite=None all'interno dei frame con sandbox proprietari?

Per attivare i cookie SameSite=None nelle richieste dalle pagine 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'intestazione HTTP Content-Security-Policy:

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

Prova tu stesso con la nostra demo.

Partecipare e condividere feedback

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