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

Natalia Markoborodova
Natalia Markoborodova

No Chrome 135, é possível 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 sandboxed próprios.

O que é um iframe em sandbox?

Os iframes em sandbox têm restrições especiais. Eles são tratados como tendo uma origem opaco null. Por padrão, recursos potencialmente nocivos, 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 precisa ter disponível. Exemplo:

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

O sandboxing é sempre uma boa ideia, porque permite selecionar de forma granular as permissões necessárias para que o conteúdo incorporado seja carregado com sucesso, além de limitar o escopo de possíveis ataques.

Por que precisamos dessa nova política?

Antes da introdução de 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, fazendo com que todas as solicitações da página isolada sejam entre sites. Nesse caso, apenas os 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 originadas da origem real do iframe, permitindo que cookies com qualquer valor SameSite sejam enviados.

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 cofre de cookies da origem inteira seria exposto a atividades da Web potencialmente maliciosas.

Com 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 são incluídos.

Exemplo prático

Considere um site, practice-coding.example, que permite que os usuários criem e executem projetos de programação personalizados e incorporem 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 como um iframe nos próprios projetos sem saber. Se os cookies SameSite=Strict e SameSite=Lax forem expostos ao iframe practice-coding.example/cookie-theft, o usuário mal-intencionado poderá roubar os 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 permitir cookies SameSite=None em iframes em sandbox. Por exemplo, practice-coding.example/coding-interview iframes em sandbox podem exigir cookies SameSite=None para permitir que os candidatos revisem o código. allow-same-site-none-cookies impede a exposição de todo o cookie jar, 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 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.

Engajamento e compartilhamento de feedback

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