كوك: SameSite=None لا يعمل بسبب إصدار Rack قديم

مرحبًا،

تمت إضافة دعم لقيمة sameSite ‘None’ (من قِبلي) قبل بضعة أسابيع. الآن يمكنك اختيار ‘None’ كإعدادات للكوكيز. ومع ذلك، عند تغيير الإعدادات وحفظها، لا يمكنك تسجيل الدخول بعد الآن. يعود طلب الجلسة/CSRF إلى حالة 500.

تتبعت هذا الخطأ، وتوضح السجلات ما يلي:
فشل في معالجة الاستثناء في وسيط تطبيق الاستثناء: قيمة SameSite غير صالحة: "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 للمعلومات، قمنا الآن بترقية rack، لذا أعادت تطبيق التزامن الخاص بك

4 إعجابات