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-originno atributosandbox, a origem do iframe é serializada comonull, tornando todas as solicitações da página em sandbox entre sites. Nesse caso, apenas cookies comSameSite=Noneserão incluídos nas solicitações. - Com o token
allow-same-originno atributosandbox, as solicitações são tratadas como originárias da origem real do iframe, permitindo o envio de cookies com qualquer valorSameSite.
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.