O Safari não envia o cookie mesmo depois de definir o SameSite = Nenhum; Seguro

13

Nosso aplicativo usa cookies para lembrar o login do usuário. Toda chamada de API de autenticação que fazemos, o navegador anexa o cookie HTTPonly definido pelo servidor à solicitação da API e é autenticado. Esse comportamento parece estar quebrado no safari após o lançamento do Mojave.

Li sobre a segurança de cookies entre sites implementada pelo safari e nossa equipe de servidores foi adicionada SameSite=None;Secureao definir o cookie. Mesmo depois disso, ainda não funciona.

Set-Cookie: my_cookie=XXXXX; path=/; secure; HttpOnly; SameSite=None

Por favor, informe ou forneça links de pessoas que realmente encontraram uma solução.

DieOnTime
fonte

Respostas:

15

As versões do Safari no MacOS 10.14 e todos os navegadores no iOS 12 são afetados por esse bug, o que significa queSameSite=None é tratado erroneamente como SameSite=Strict, por exemplo, a configuração mais restritiva.

Publiquei algumas orientações nas receitas de cookies do SameSite em:

  • Usando dois conjuntos de cookies para dar conta de navegadores compatíveis SameSite=None; Secure e os que não .
  • Detectar o agente do usuário em navegadores incompatíveis e não atender SameSite=Nonea essas solicitações.
rowan_m
fonte
11
Olá Rowan, Obrigado pela resposta e desculpas pela resposta tardia. Pedi à minha equipe do lado do servidor para experimentar as orientações no link web.dev acima. Talvez essa seja uma pergunta completamente inadequada, de qualquer maneira aqui vai. Como milhões de usuários são afetados pela mudança, há notícias se houver algum plano futuro da equipe da Apple para resolvê-la?
DieOnTime 6/11/19
Não posso falar pela equipe Apple / Safari. Eu acho que o bug original é o melhor lugar para essas discussões.
21419 Rowan_m
0

Para aplicativos codificados em Ruby (especificamente, Rails, Sinatra ou qualquer coisa no topo do Rack), a gema RailsSameSiteCookie resolve esses problemas e os relacionados muito bem. O código parece uma tradução quase aproximada do pseudocódigo na discussão do Chromium sem as expressões regulares frágeis.

Av Pinzur
fonte