web-dev-qa-db-fra.com

Safari n'envoie pas de cookie même après avoir défini SameSite = None; Sécurise

Notre application utilise des cookies pour mémoriser la connexion de l'utilisateur. Chaque appel d'API d'authentification que nous faisons, le navigateur attache un cookie HTTPonly défini par le serveur à la demande d'API et est authentifié. Ce comportement semble être rompu dans Safari après la sortie de Mojave.

J'ai pris connaissance de la sécurité des cookies intersites mise en œuvre par safari et notre équipe de serveurs a ajouté SameSite=None;Secure lors de la configuration du cookie. Même après cela, cela ne fonctionne toujours pas.

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

Veuillez conseiller ou fournir des liens de personnes qui ont trouvé une solution.

12
DieOnTime

Les versions de Safari sur MacOS 10.14 et tous les navigateurs sur iOS 12 sont affectés par ce bogue ce qui signifie que SameSite=None est traité à tort comme SameSite=Strict, par exemple. le réglage le plus restrictif.

J'ai publié quelques conseils dans recettes de cookies SameSite sur l'un ou l'autre:

  • Utilisation de deux ensembles de cookies pour tenir compte des navigateurs prenant en charge SameSite=None; Secure et ceux qui ne le font pas.
  • Renifler l'agent utilisateur pour les navigateurs incompatibles et ne pas servir SameSite=None pour ces demandes.
12
rowan_m

Pour les applications codées en Ruby (en particulier, Rails, Sinatra ou quoi que ce soit au-dessus de Rack), le RailsSameSiteCookie gem résout très bien ce problème et les problèmes connexes. Le code se lit comme un traduction proche du pseudocode dans la discussion Chromium sans les regex cassants.

0
Av Pinzur