Atributo de cookie SameSite
Cookies são cadeias de caracteres de texto enviadas de sites e armazenadas em um computador pelo navegador. São utilizados para autenticação e personalização. Por exemplo, os cookies são usados para recuperar informações com estado, preservar as configurações do usuário, registrar a atividade de navegação e exibir anúncios relevantes. Os cookies sempre são vinculados a um domínio específico e são instalados por várias partes.
Tipos de cookies
Os tipos de cookie e seus escopos correspondentes são os seguintes:
Cookie | Escopo |
---|---|
Cookie primário | Um cookie primário é criado por sites que um usuário visita. É utilizado para guardar dados, como itens de carrinho de compras, credenciais de início de sessão. Por exemplo, cookies de autenticação e outras análises. |
Cookie secundário | Um cookie secundário é tecnicamente o mesmo que um cookie primário. A diferença é que os dados são compartilhados com uma outra parte por meio de um contrato de parceria de dados. Por exemplo, Análise e relatórios do Microsoft Teams. |
Cookie de terceiros | Um cookie de terceiros é instalado por um domínio diferente do que o utilizador visitou explicitamente e é utilizado para controlo. Por exemplo, os botões Curtir, serviço de anúncios e chats ao vivo. |
Cookies e solicitações HTTP
Antes da introdução das restrições do SameSite, os cookies eram armazenados no navegador. Eles eram anexados a cada solicitação HTTP da Web e enviados ao servidor pelo cabeçalho de resposta HTTP Set Cookie
. Esse método introduziu vulnerabilidades de segurança, como solicitação intersite forjada, chamadas de ataques CSRF. O componente do SameSite reduziu a exposição por meio de sua implementação e gerenciamento no cabeçalho SetCookie.
Atributo de cookie SameSite: versão inicial
O Google Chrome versão 51 introduziu a especificação SetCookie SameSite
como um atributo opcional. A partir da Compilação 17672, o Windows 10 introduziu o suporte de cookies SameSite para o browser Microsoft Edge.
Você pode recusar a adição do atributo de cookie SameSite ao cabeçalho SetCookie
ou adicioná-lo com uma das duas configurações, Lax e Strict. Um atributo SameSite não implementado foi considerado o estado padrão.
Atributo de cookie SameSite: versão 2020
O Chrome 80, lançado em fevereiro de 2020, introduziu novos valores de cookie e impõe políticas de cookie por padrão. Três valores são passados para o atributo SameSite atualizado: Strict, Lax ou None. Se não for especificado, o atributo SameSite dos cookies assume o valor SameSite=Lax
por padrão.
Os atributos do cookie SameSite são os seguintes:
Setting | Imposição | Valor | Especificação do atributo |
---|---|---|---|
Lax | Os cookies são enviados automaticamente apenas em um contexto primário e com solicitações HTTP GET. Os cookies SameSite são retidos em subsolicitações entre sites, como chamadas para carregar imagens ou iframes. Eles são enviados quando um usuário navega pela URL de um site externo, por exemplo, seguindo um link. | Default | Set-Cookie: key=value; SameSite=Lax |
Estrito | O navegador envia apenas cookies para solicitações de contexto primário. Essas são solicitações originadas do site que define o cookie. Se a solicitação tiver sido originada de uma URL diferente da localização atual, nenhum dos cookies marcados com o atributo Strict será enviado. |
Opcional | Set-Cookie: key=value; SameSite=Strict |
Nenhum | Os cookies são enviados em ambos os contextos originais e pedidos de origem cruzada; no entanto, o valor tem de ser explicitamente definido como None e todos os pedidos do browser têm de seguir o protocolo HTTPS e incluir o Secure atributo, que requer uma ligação encriptada. Os cookies que não cumpram esse requisito são rejeitados. Ambos os atributos são necessários juntos. Se None for especificado sem Secure ou se o protocolo HTTPS não for utilizado, os cookies de terceiros serão rejeitados. |
Opcional, mas, se definido, o protocolo HTTPS é obrigatório. | Set-Cookie: key=value; SameSite=None; Secure |
Implicações e ajustes do Teams
- Habilite a configuração relevante do SameSite para seus cookies e certifique-se que seus aplicativos e extensões continuam funcionando no Teams.
- Se os aplicativos ou extensões falharem, faça as correções necessárias antes da versão do Chrome 80.
- Os parceiros internos da Microsoft podem aderir à seguinte equipa para obter mais informações ou ajudar com este problema: ;https://teams.microsoft.com/l/team/19%3A08b594cd465e4c0491fb751e823802e2%40thread.skype/conversations?groupId=4d6d04cd-dbf0-43c8-a2ff-f80dd38be034& tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47.
Observação
Você deve definir o atributo SameSite para refletir a finalidade para a qual o cookie é usado. Não confie no comportamento padrão do navegador. Para obter mais informações, confira Desenvolvedores: prepare-se para o novo SameSite=None; Configurações Seguras de Cookie.
Separadores, caixas de diálogo e extensões de mensagens
- As guias do Teams usam
<iframes>
para inserir conteúdo que é exibido em um contexto primário ou de nível superior. - As caixas de diálogo (referidas como módulos de tarefas no TeamsJS v1.x) permitem-lhe criar experiências de pop-up modais na sua aplicação Teams. Semelhante a uma guia, uma janela modal é aberta dentro da página atual.
- As extensões de mensagem permitem inserir conteúdo enriquecido em uma mensagem de chat a partir de recursos externos.
Todos os cookies usados pelo conteúdo inserido são considerados como de terceiros quando o site é exibido em um <iframe>
. Além disso, se algum recurso remoto em uma página depender de cookies que são enviados com uma solicitação <img>
e marcas <script>
, fontes externas e conteúdo personalizado, você deve garantir que eles sejam marcados para uso entre sites, como SameSite=None; Secure
ou garantir que um fallback esteja em vigor.
Autenticação
Você deve usar o fluxo de autenticação baseado na Web para o seguinte:
- Páginas de conteúdo inseridas em guias.
- Página de configuração, caixa de diálogo e extensão de mensagem.
- Bot de conversação com uma caixa de diálogo.
De acordo com as restrições atualizadas do SameSite, um browser não adiciona um cookie a um site já autenticado se a ligação derivar de um site externo. Você deve garantir que os cookies de autenticação estejam marcados para uso entre sites SameSite=None; Secure
ou verificar se um fallback está em vigor.
Android System WebView
O Android WebView é um componente do sistema Chrome que permite que aplicativos Android exibam o conteúdo da Web. Embora as novas restrições sejam predefinidas, a partir do Chrome 80, não são imediatamente impostas no WebViews. Serão aplicadas no futuro. Para se preparar, o Android permite que aplicativos nativos definam cookies diretamente por meio da API CookieManager.
Observação
- Você deve declarar cookies primários como
SameSite=Lax
ouSameSite=Strict
, conforme apropriado. - Você deve declarar cookies de terceiros como
SameSite=None; Secure
.