Detectar a disponibilidade de cookies de terceiros no Chrome

O Chrome propôs uma nova experiência que permite que os usuários escolham como os cookies de terceiros são processados durante a navegação. Sites e serviços podem precisar detectar se os cookies de terceiros estão disponíveis em um determinado contexto. O Chrome tem dois métodos principais para detectar o acesso a cookies de terceiros para conteúdo incorporado: usar o método JavaScript hasStorageAccess e observar os cabeçalhos Sec-Fetch-Storage-Access.

O Sandbox de privacidade introduziu APIs que podem conceder a frames específicos acesso a cookies de terceiros se determinadas condições forem atendidas. Portanto, é importante detectar o acesso a cookies não particionados por incorporação.

Detectar o acesso a cookies de terceiros em iframes

Quando o conteúdo de um iframe é hospedado em um site diferente daquele exibido na barra de endereço do usuário, ele é considerado cross-site e pode ter cookies de terceiros restritos. O iframe pode detectar se tem acesso a cookies de terceiros chamando await document.hasStorageAccess(). Esse método retorna true ou false, dependendo se o frame tem ou não acesso a cookies não particionados.

Se o iframe usar a API Storage Access (SAA) para acessar cookies não particionados entre sites (usando a SAA sozinha ou com conjuntos de sites relacionados), você poderá verificar a permissão storage-access para determinar se o frame pode ou não acessar cookies não particionados.

Detectar o acesso a cookies de terceiros em solicitações HTTP

No Chrome 133 e versões mais recentes, o cabeçalho Sec-Fetch-Storage-Access é enviado com solicitações com credenciais para informar ao servidor se o contexto de chamada tem acesso a cookies não particionados. Esse cabeçalho contém um destes três valores:

  • none: a incorporação não tem acesso a cookies não particionados
  • inactive: a incorporação tem permissão para acessar cookies não particionados, mas não a ativou
  • active: a incorporação tem acesso a cookies não particionados

Condições que concedem acesso a cookies não particionados

O acesso a cookies de terceiros não particionados pode ser concedido de várias maneiras para oferecer suporte a casos em que esses cookies oferecem a funcionalidade necessária. Os métodos a seguir resultam no acesso a cookies não particionados. Em vários casos, requestStorageAccess() ou requestStorageAccessFor() precisam ser chamados antes que o acesso seja concedido.

Método Exemplo É necessário chamar requestStorageAccess?
Prompt da API Storage Access O usuário é solicitado a permitir o acesso ao armazenamento e seleciona "Permitir". Sim
Gerenciamento de credenciais federadas O usuário faz login com um provedor de identidade federado (IdP). O frame do IdP solicita acesso ao armazenamento. Sim
Conjuntos de sites relacionados A incorporação e o incorporador pertencem ao mesmo RWS. Sim
3PCs ativados nas configurações do usuário O usuário escolhe permitir 3PCs para toda a navegação ou apenas para uma origem específica. Não
Exceções baseadas em heurísticas O Chrome detecta um padrão heurístico e concede acesso automático a cookies não particionados. Não é necessário chamar requestStorageAccess(). Não
Exceções temporárias (por exemplo, período de carência) O site ou serviço se inscreveu em uma exceção temporária do Chrome durante a transição para uma solução mais durável. Não
Políticas empresariais O administrador do Chrome Enterprise de uma empresa escolheu permitir 3PCs em parte ou em todo o tráfego. Não