Cooke: SameSite=None が古くなった Rack バージョンのために機能しない

こんにちは、

sameSite の ‘None’ サポートは数週間前に(私が)追加されました。現在、クッキー設定として ‘None’ を選択できるようになりました。ただし、変更して保存すると、ログインできなくなります。セッション/CSRF リクエストが 500 エラーを返します。

そのエラーを追跡したところ、ログには以下のように表示されていました:
Failed to handle exception in exception app middleware : Invalid SameSite value: "None"

/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/utils.rb:260:in add_cookie_to_header’`

現在の Rack バージョン(2.0.8)では、sameSite の ‘None’ を設定としてサポートしていないことがわかりました。ただし、最新の Rack バージョンではサポートされています。

プロジェクト内の Gemfile には、Rack のアップグレードが何らかの問題を引き起こす可能性があるというヒントがコメントとして記載されています:

そのため、プロジェクトについて私よりも深い知識を持つ誰かにアップグレードしていただくことをお勧めします。

これは重大な問題です。なぜなら、クッキー設定を “None” に変更すると、誰もログインできなくなり、修正するにはデータベース経由でのみ対応可能になるからです。

どなたか、この問題を修正するか、サポートしていただけませんでしょうか?私は Ruby の専門家ではありません。

「いいね!」 1

こんにちは @dave0688 さん、ご指摘ありがとうございます。サーバーエラーを引き起こすのを防ぐため、samesite=none オプションを削除しました。

Rack のアップグレードは認識していますが、かなり複雑になる見込みです。正確な完了時期は現時点ではお答えできません。

アップグレードが完了次第、SameSite=none サイト設定を再度追加できることを嬉しく思います。

「いいね!」 6

@dave0688 FYI ラックがアップグレードされたので、あなたのコミットを再適用しました

「いいね!」 4