Cooke: SameSite=None no funciona debido a una versión obsoleta de Rack

Hola,

El soporte para sameSite ‘None’ fue agregado (por mí) hace un par de semanas. Ahora puedes seleccionar ‘None’ en la configuración de las cookies. Sin embargo, cuando cambias y guardas la configuración, ya no puedes iniciar sesión. La solicitud de sesión/csrf devuelve un error 500.

Rastree ese error y los registros indican:
Failed to handle exception in exception app middleware : Invalid SameSite value: "None"
en
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/utils.rb:260:in add_cookie_to_header’`

Ahora, descubrí que nuestra versión actual de Rack (2.0.8) no admite sameSite ‘None’ como configuración. Sin embargo, está soportado en la versión más reciente de Rack.

El archivo Gemfile del proyecto incluye un comentario con una advertencia de que la actualización de Rack podría romper algo:

Por lo tanto, preferiría que alguien con un conocimiento más profundo del proyecto que el mío realice la actualización.

Considero esto crítico, ya que, si cambias la configuración de las cookies a “None”, nadie podrá iniciar sesión y la única forma de solucionarlo es a través de la base de datos.

¿Puede alguien por favor solucionarlo o ayudarme? No soy muy experto en Ruby.

1 me gusta

Hola @dave0688, gracias por plantear esto. Acabo de eliminar la opción samesite=none para evitar provocar un error en el servidor.

Tenemos la actualización de rack en nuestra hoja de ruta, pero será bastante complicada. No tengo una fecha estimada de finalización exacta.

Una vez que se actualice, estaremos encantados de volver a añadir la configuración del sitio SameSite=none.

6 Me gusta

@dave0688 Para tu información, ahora tenemos Rack actualizado, así que volví a aplicar tu commit

4 Me gusta