الأمان: لا يمكن تعيين sameSite=None في إعدادات الكوكيز

غيّرت شركة Google مؤخرًا سياسات ملفات تعريف الارتباط الخاصة بها (Chrome's Changes Could Break Your App: Prepare for SameSite Cookie Updates | Heroku). بشكل أساسي، يجب أن تحتوي جميع ملفات تعريف الارتباط القادمة من نطاق علوي مختلف على السمة “secure: true” (وهو ما هو مطبق بالفعل)، بالإضافة إلى “sameSite=None”.

الآن، في إعدادات الأمان الخاصة بـ Discourse، يمكنك تغيير سياسة ملفات تعريف الارتباط:

“ملفات تعريف الارتباط من نفس الموقع” مع الخيارات: “Lax”، “Strict”، “Disabled”.

سيتم نقل الخيارين الأولين مباشرة كقيم لمعامل “SameSite” في ملف تعريف الارتباط. أما خيار “Disabled” فلا يحدد أي قيمة على الإطلاق.

المشكلة هنا هي أننا بحاجة إلى تمرير القيمة “None” إلى ملف تعريف الارتباط. فقط باستخدام القيمة “None” سيتم نقل ملف تعريف الارتباط إلى الموقع الآخر (غير المتطابق مع النطاق العلوي).

ومع ذلك، لا توجد قيمة “None” يمكنني اختيارها في Discourse، لكننا بحاجة ماسة إليها لجعل واجهة برمجة تطبيقات منتدى Discourse لدينا تعمل بشكل صحيح.

ينبغي ألا يكون الأمر معقدًا لتنفيذ قيمة إضافية “None” في ملف تعريف الارتباط من نفس الموقع.
هل يمكن لأحد التحقق من ذلك، من فضلك؟

شكرًا مقدّمًا!
ديفيد

إعجاب واحد (1)

نرحب تمامًا بطلب الدمج لإضافة هذا الإعداد الإضافي، إذ يجب أن يكون التغيير بسيطًا للغاية.

إعجاب واحد (1)

لا توجد مشكلة. التنفيذ (الذي يتضمن إضافة كلمة واحدة في الأساس) جاهز. لقد وقّعتُ اتفاق المساهم الخاص بك. هل يمكنك من فضلك جعلني مساهمًا؟ اسمي على GitHub هو أيضًا dave0688. بعد ذلك، سأقوم بإنشاء طلب سحب (PR) وأطلب منك (أو من شخص آخر) مراجعته، من فضلك.

إعجاب واحد (1)

هل يمكنني الحصول على إجابة بخصوص ذلك؟ أنا مستعد لإنشاء طلب الدمج، لكنني أحصل على خطأ 403 عند دفع الفرع الخاص بي…

ستحتاج إلى إنشاء نسخة من المستودع (fork)، ثم دفع الفرع إلى نسختك، وأخيرًا إنشاء طلب دمج (PR) من هناك. فقط فريق Discourse يعتبرون “مساهمين” في مستودع discourse/discourse.

3 إعجابات

لا مشكلة، لقد فعلت ذلك للتو:

3 إعجابات

تم الدمج للتو، شكرًا لك على طلب السحب @dave0688 :smiley:

3 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 7 ساعات. لم يعد مسموحًا بالردود الجديدة.