Novo valor de sandbox allow-same-site-none-cookies do Chrome 135

Natalia Markoborodova
Natalia Markoborodova

A partir do Chrome 135, você pode usar o novo valor sandbox: allow-same-site-none-cookies. Quando essa política é especificada e os cookies de terceiros não estão disponíveis, o navegador só envia cookies SameSite=None em solicitações HTTP originadas de iframes em sandbox próprios.

O que é um iframe em sandbox?

Iframes em sandbox são iframes com restrições especiais. Elas são tratadas como tendo uma origem null, opaca. Por padrão, recursos potencialmente prejudiciais, como scripts, formulários e pop-ups, não estão disponíveis em iframes em sandbox.

Use o atributo sandbox para especificar quais recursos um iframe em sandbox deve ter disponíveis. Exemplo:

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

O isolamento em sandbox é sempre uma boa ideia, já que permite selecionar de forma granular as permissões necessárias para que o conteúdo incorporado seja carregado corretamente, limitando o escopo de possíveis explorações.

Por que precisamos dessa nova política?

Antes da introdução do allow-same-site-none-cookies, era possível configurar dois cenários de cookies em um iframe em sandbox:

  • Sem o token allow-same-origin no atributo sandbox, a origem do iframe é serializada como null, tornando todas as solicitações da página em sandbox entre sites. Nesse caso, apenas cookies com SameSite=None serão incluídos nas solicitações.
  • Com o token allow-same-origin no atributo sandbox, as solicitações são tratadas como originárias da origem real do iframe, permitindo o envio de cookies com qualquer valor SameSite.

Com os cookies de terceiros bloqueados, um iframe em sandbox sem allow-same-origin não pode enviar cookies, a menos que você ative allow-same-site-none-cookies.

Um iframe com allow-same-origin ainda poderá incluir cookies em solicitações do mesmo site, mesmo quando os cookies de terceiros estiverem bloqueados. No entanto, o conjunto de cookies de toda a origem ficaria exposto a atividades da Web potencialmente maliciosas.

Com o allow-same-site-none-cookies, um iframe pode enviar cookies SameSite=None em solicitações HTTP, enquanto cookies SameSite=Strict e SameSite=Lax potencialmente sensíveis não serão incluídos.

Exemplo prático

Considere um site, practice-coding.example, que permite aos usuários criar e executar projetos de programação personalizados e incorporar o código de outros usuários. Para usar o serviço, os usuários precisam fazer login, o que resulta na definição de um cookie de sessão SameSite=Strict.

Outro usuário cria um projeto, practice-coding.example/cookie-theft, que outros usuários podem incorporar sem saber como um iframe nos projetos deles. Se os cookies SameSite=Strict e SameSite=Lax forem expostos ao iframe practice-coding.example/cookie-theft, o usuário malicioso poderá roubar cookies de sessão de outros usuários.

Nesse cenário, o proprietário do site pode querer restringir o acesso a cookies potencialmente sensíveis. No entanto, eles ainda podem querer permitir cookies SameSite=None em iframes isolados. Por exemplo, um iframe em sandbox practice-coding.example/coding-interview pode exigir cookies SameSite=None para permitir que os candidatos revisitem o código. allow-same-site-none-cookies impede a exposição de todos os cookies, permitindo seletivamente os cookies SameSite=None necessários.

Como permitir apenas SameSite=None em frames em sandbox próprios?

Para ativar cookies SameSite=None em solicitações de páginas em sandbox próprias, especifique o token allow-same-site-none-cookies na tag iframe. Exemplo:

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

Também é possível definir uma política allow-same-site-none-cookies com um cabeçalho HTTP Content-Security-Policy:

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

Teste você mesmo com nossa demonstração.

Interagir e compartilhar feedback

Registre um problema para compartilhar feedback ou relatar problemas, ou participe da discussão no GitHub.