كيفية تعيين علامة آمن لملف تعريف الارتباط _forum_session

مرحباً،
يجب أن يعمل موقعنا مع بروتوكولي HTTP و HTTPS، ونحتاج إلى تأمين ملف تعريف الارتباط (_forum_session). يفتقر ملف تعريف الارتباط إلى علامة الأمان Secure ويحتوي فقط على علامة HttpOnly. كيف يمكن إعداد ذلك مع وجود علامة الأمان Secure أيضاً؟

شكراً لكم

يجب إعداد موقعك للعمل عبر بروتوكول HTTPS فقط.

4 إعجابات

لا توجد طريقة للتعديل في كود Discourse؟

مرحبًا @mevaha

الاتجاه السائد في الويب لسنوات عديدة هو استخدام HTTPS فقط.

كان هذا يمثل مشكلة في السابق حتى بدأت منظمات مثل Let’s Encrypt (LE) في تقديم شهادات SSL مجانًا وتوفير آلية قوية لإدارة هذه الشهادات.

عند استخدام LE (certbot) لإعداد الشهادات على موقعك، سيتم إعداد كل من HTTP و HTTPS، وسيتم تحويل حركة مرور HTTP تلقائيًا بالكامل إلى HTTPS.

بالطبع، يمكنك العثور على طريقة لتشغيل Discourse باستخدام HTTP فقط، لكن هذا لن يكون مدعومًا إلا في بيئة تطوير Discourse؛ لأنه بدون HTTPS، سيتم نقل جميع معلومات تسجيل دخول المستخدمين، بما في ذلك كلمات المرور، بشكل غير مشفر عبر الشبكة. وهذا غير مدعوم في بيئة الإنتاج.

تخيل الأمر بهذه الطريقة: HTTPS يشبه استخدام أحزمة الأمان في السيارة. الأشخاص الذين يريدون القيادة دون أحزمة أمان يفعلون ذلك على مسؤوليتهم الخاصة؛ وبالتالي لن تقوم شركات تصنيع السيارات بإنتاج سيارات بدون أحزمة أمان.

ينطبق الشيء نفسه على Discourse. تم تصميم Discourse للعمل بأمان في بيئة الإنتاج؛ وبالتالي فإن الإصدار المدعوم من Discourse في الإنتاج هو HTTPS.

أتمنى أن يكون هذا مفيدًا.

آسف على عدم قدرتي على المساعدة بشكل أكبر.

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

شكرًا لك @neounix. مشكلتنا هي أن شهادة HTTPS مُدارة بواسطة موازن الحمل، وأن المنفذ 80 فقط مفتوح بين Discourse وموازن الحمل. لقد حاولنا إعادة توجيه HTTP إلى HTTPS دون نجاح، هل يمكنك مشاركة ملف إعدادات الكوكيز في Discourse معي؟

شكرًا

مرحبًا @mevaha

في حال كان الأمر كذلك، فمن المرجح جدًا أن يكون لديك وكيل عكسي (reverse proxy) أمام موازن الحمل (أو كجزء منه).

دعني أشرح.

يتواصل الوكيل العكسي (مع موازن الحمل إن وجد) مع Discourse في الخلفية باستخدام بروتوكول HTTP.

لذا فأنت محق في أن Discourse يتواصل فقط عبر HTTP، ولكن فقط مع الوكيل العكسي، وليس مع العالم الخارجي.

إذن، تسير العملية كالتالي:

مستخدمو الويب  <-----> HTTPS  <-----> الوكيل العكسي <----> HTTP <----> موازن الحمل <----> DISCOURSE (Docker)

لذلك، يمكنك تعريض حاوية DISCOURSE Docker كمنفذ 80 (HTTP فقط) كما تتحدث عنه.

ومع ذلك، على الموقع الموجه للويب، تحتاج إلى وكيل عكسي يقوم بتحويل طلبات HTTPS إلى الخلفية باستخدام HTTP.

الوكيل العكسي الخاص بك (مع موازن الحمل)، إذا تم إعداده بشكل صحيح، سيضمن تمرير ملفات تعريف الارتباط وعناوين HTTP (headers) بشكل صحيح ذهابًا وإيابًا.

أتمنى أن يكون هذا مفيدًا.

إذا كانت لديك المزيد من الأسئلة، فلا تتردد في طرحها.

يرجى ملاحظة أنه إذا زودتنا بالتفاصيل التقنية الدقيقة لهيكليتك، فسيكون من الأسهل مساعدتك؛ إذ لا نملك تطبيقًا يعمل ككرة بلورية :slight_smile:

إعجابَين (2)

شكرًا جزيلاً لك @neounix

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

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.