3 votos

Safari 16.4 parece perder las cookies de sesión en las solicitudes de activos o fetches de javascript

En iPads después de actualizar a iPadOS 16.4, Safari a menudo "pierde" la cookie de sesión proporcionada por PlayFramework: Cuando el navegador solicita activos (scripts de js) o cuando se obtienen datos adicionales mediante JavaScript, la cookie de sesión no se incluye en la solicitud.

Estas solicitudes secundarias se redirigirán a través de nuestro IAM porque no hay cookie de sesión presente. El IAM redirige de nuevo al dominio original con un payload para que la sesión de inicio de sesión pueda ser reanudada. Se envía un nuevo encabezado Set-Cookie en la respuesta con la nueva cookie de sesión.

Esto hace que el framework emita un nuevo token CSRF (que forma parte de la cookie de sesión) que es diferente del anterior que ya se ha renderizado en un campo de formulario oculto. El navegador almacena este nuevo token y lo incluye cuando POSTea el formulario. El token en el cuerpo de la solicitud es ahora diferente al de las cookies, lo que hace que la verificación CSRF falle.

Hemos probado diferentes dispositivos (Android, Windows, MacBook y iPads) en diferentes versiones. El problema solo ocurre con Safari en iPad/MacBook ejecutando la versión 16.4, 16.4.1 o 16.5 beta. El problema no se puede reproducir usando Chrome en iPad. Además, el problema no ocurre con la navegación privada en Safari.

Algunas cosas que descartamos:

  • Mismo comportamiento en dispositivos gestionados por MDM y en dispositivos abiertos.
  • La versión de PlayFramework ha sido actualizada a la última versión 2.8.
  • Usar una cookie separada para el token CSRF (en lugar de la cookie de sesión de juego) tampoco hace ninguna diferencia.
  • Modificar el encabezado Cache-Control para almacenar en caché las respuestas de forma más agresiva o no hacerlo en absoluto no ayuda.

¿Alguien más ha experimentado este problema o problemas similares?

2voto

Tweeks Puntos 11

También estoy experimentando este problema. En iOS y también en macOS.

El consenso parece ser que se trata de un error en Webkit que fue introducido recientemente. Aquí está el informe de error:

https://bugs.webkit.org/show_bug.cgi?id=255524

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X