Cooke: SameSite=None funktioniert nicht wegen veralteter Rack-Version

Hallo,

Die Unterstützung für sameSite ‘None’ wurde (von mir) vor ein paar Wochen hinzugefügt. Jetzt können Sie ‘None’ als Cookie-Einstellung auswählen. Wenn Sie dies jedoch ändern und speichern, können Sie sich nicht mehr anmelden. Die Session-/CSRF-Anfrage liefert einen Fehler 500.

Ich habe den Fehler nachverfolgt, und die Logs besagen:
Failed to handle exception in exception app middleware : Invalid SameSite value: "None"
in
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/utils.rb:260:in add_cookie_to_header’`

Ich habe herausgefunden, dass unsere aktuelle Rack-Version (2.0.8) sameSite ‘None’ als Einstellung nicht unterstützt. Dies wird jedoch von der neuesten Version von Rack unterstützt.

In der Gemfile des Projekts ist jedoch ein Hinweis darauf enthalten, dass das Upgrade von Rack etwas kaputt machen könnte:

Daher würde ich es bevorzugen, wenn jemand mit tieferem Projektwissen als ich das Upgrade durchführt.

Ich würde dies als kritisch einstufen, da, wenn Sie die Cookie-Einstellungen auf “None” ändern, niemand mehr einloggen kann und die einzige Möglichkeit zur Behebung über die Datenbank besteht.

Kann jemand das Problem bitte beheben oder unterstützen? Ich bin nicht besonders versiert in Ruby.

1 „Gefällt mir“

Hallo @dave0688 – danke, dass du das angesprochen hast. Ich habe gerade die Option samesite=none entfernt, um einen Serverfehler zu vermeiden.

Das Rack-Update steht auf unserem Radar, wird jedoch recht komplex sein. Ich habe kein genaues Zeitfenster.

Sobald das Update durchgeführt ist, fügen wir die Site-Einstellung SameSite=none gerne wieder hinzu.

6 „Gefällt mir“

@dave0688 FYI: Wir haben Rack jetzt aktualisiert, daher habe ich deinen Commit erneut angewendet

4 „Gefällt mir“