تسجيل الدخول كمستخدم مختلف في الوقت الحقيقي

يستمر هذا في الحدوث بشكل عشوائي لأي وجميع المستخدمين. لم يحدث لي ولكني سجلت الخروج عندما حدث لشخص آخر مرة. ليس لدي أي فكرة من أين أبدأ البحث.

لدي موضوع قيد التقدم في منتدى خاص بي جعلته عامًا لتقديم المزيد من المعلومات. هذه المرة أصبح مستخدمان مسجلين الدخول كمستخدم واحد، أحدهما مسؤول والآخر ليس كذلك. المستخدم الذي أصبحا عليه ليس نشطًا حتى.

@Falco أي رؤى حول مكان البحث محل تقدير.

@Falco هذه مشكلة مستمرة منذ عدة سنوات. على حد علمي، هذه مشكلة تتعلق بجلسة المستخدم من جانب العميل ومعرف المستخدم على وجه التحديد. يتم التحايل على هذه المشكلة فقط، وليس إصلاحها، إذا تم استخدام المصادقة الخارجية بدلاً من تسجيل الدخول المحلي، أي المصادقة المحلية.

هل يمكنك تأكيد أن هذا ناتج عن المصادقة المحلية دون المستوى المطلوب لديك؟

مع كل الاحترام الواجب، هناك الآلاف من تثبيتات Discourse المنتشرة في جميع أنحاء الإنترنت. في استضافتنا وحدها، ندير الآلاف، وهناك العديد من الاستضافات الذاتية أيضًا، ومثيلتك هي الوحيدة التي تبلغ عن هذه المشكلة. هذا يعني أن مشكلتك على الأرجح ناتجة عن نفسك.

نظرًا لأنك تقوم بتشغيل وكيل عكسي مخصص أمام Discourse، سأبدأ بإزالة هذا والانتقال إلى إعداد التثبيت القياسي المبارك لدينا قبل الإبلاغ عن الخطأ هنا.

:face_with_raised_eyebrow:

3 إعجابات

أنا لست متأكدًا من ما يجعل إعداداتي مخصصة مقابل المدمجة في discourse حيث أن كلاهما nginx. لكن من غير الممكن بالنسبة لي إزالته لأن discourse ليس الشيء الوحيد الذي أستضيفه. أنا متأكد أنه مشكلتي، ولكن إذا كان من الممكن أن يحدث لي فهو أيضًا ممكن أن يحدث لأي شخص آخر. ليس لدي أي مشاكل أخرى مع أي من البرامج التي أستضيفها. لست أطلب منك أن تمسكني هنا ولكن لا أستطيع أن أجد شيئًا خاطئًا بخلاف ذلك.

إذا لم يكن هناك أي رؤية أخرى قد تتمكن من تقديمها حول أين تنظر، ربما تعرف شخصًا يمكنه ذلك. لقد حاولت فحص السجلات على الحاويتين بالإضافة إلى مضيفيهما المعنيين. لست متأكدًا من أين أبحث أكثر عما ذهب خطأً.

إعجابَين (2)

هل تعتقد أن حجم الموضوع قد يكون سببًا في ذلك؟ نوع من الأثر الجانبي لزيادة أو تجاوز الحد؟

نصل إلى عشرات الآلاف من الردود على عدة مواضيع، في فئات مختلفة.

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

لا أعرف الكثير عن العمل الداخلي لـ discourse، ولكن بالنسبة لي، يبدو أن هذا الشيء يجب أن يثير اهتمام المطورين.

ندير منتديات حيث تتجاوز الموضوعات 70 ألف رد ولا يسبب هذا المشكلة، مثل Forum Jeux vidéo - Gamekult أو https://forums.woot.com/latest?ascending=false&order=posts

نعم، إنها بالتأكيد مشكلة أمنية. ولكن إذا حدث ذلك في هذه النسخة المحددة فقط، فهي مشكلة أمنية في موقعك، وليست في Discourse، أليس كذلك؟

يسعدني المساعدة هنا. هل ستكون منفتحًا على نقل الموقع إلى خادم منفصل لبضعة أسابيع باستخدام تثبيتنا القياسي لاستبعاد أي مشاكل متعلقة بالوكيل العكسي؟

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

إذا كان وكيل الاستضافة العكسي الخاص بي قادرًا على تشويه بعض الرموز أو أي شيء آخر بالطريقة الصحيحة بحيث يعتقد Discourse أن المستخدم قد أصبح شخصًا آخر… فهل يهم حقًا ما إذا كانت المشكلة تكمن في وكيل الاستضافة العكسي؟ ألن يشير هذا إلى شيء يمكن استغلاله في مكان آخر؟

مرة أخرى، لا أعرف ما لا أعرفه عن كيفية عمل المصادقة.

لقد ابتعدنا عن الاستضافة الخارجية بسبب زيادة التكاليف، ولكن قد تكون هناك طريقة أخرى يمكننا من خلالها معالجة ذلك. سأقوم بالتحقيق في وكيل الاستضافة العكسي. حاليًا، أستخدم هذه الحاوية لسهولة الإدارة، ومع ذلك يمكنني تجربة شيء مختلف.

أعلم أنك تقول إن هذا يحدث لي فقط، وليس لدي دليل على عكس ذلك، ولكن هل هذا يعني حقًا أنه غير ممكن لأي شخص آخر؟

سأقوم ببعض البحث في تكوين nginx الذي يأتي به Discourse لمعرفة ما إذا كان بإمكاني فهم أين أخطأت. أقدر رؤيتك.

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

هل لديك أي إعدادات للتخزين المؤقت على الوكيل تحت نطاق Discourse؟

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

أنا أستخدم خيار التخزين المؤقت المتوفر. هذه هي الإعدادات التي تأتي مع تلك الحاوية المذكورة أعلاه.

أنا أستخدم أيضًا خيار “حظر الاستغلالات الشائعة”.

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

لا أدعي أنني سأفهم أي شيء هنا والآن، ولكن عندما بدأت في استخدام Discourse، كان لدي Varnish أمام Discourse، وواجهت الكثير من الأشياء الغريبة، مثل المحتوى الخاطئ.

يقوم Discourse بالتخزين المؤقت الخاص به وأي نوع من التخزين المؤقت بواسطة وكيل عكسي هو فكرة سيئة للغاية. ولكن بالتأكيد، فإن مهاراتي المحدودة للغاية تختلف كثيرًا عن ما يمكن أن يفعله Big Guys™.

3 إعجابات

معلومات جيدة. يمكنني تعطيل “الميزات الإضافية” هنا.

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

إذًا، ستقوم بما اقترحه فالكو بالفعل عدة مرات :smirking_face:

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

لقد أراد مني إزالة الوكيل العكسي بالكامل. هذا مجرد إزالة بعض الأشياء من تكوين الوكيل. لم أكن أعرف أن ديسكورس كان يقوم بالتخزين المؤقت داخليًا والذي سيتعارض مع التخزين المؤقت الخارجي ، لذا هذا اقتراح مفيد.

الرابط الذي يستمر في إرساله هو ما نفعله بالفعل:

ستنجح هذه الخطوات على أي مزود سحابي متوافق مع Docker أو خادم محلي.

إنه يشغل الحاوية القياسية. تذكر المستندات استخدام صندوق “متوافق مع Docker”، والذي يستخدمه. تذكر المستندات حتى استخدام خادم محلي، والذي يستخدمه.

لا يوجد ذكر لاستخدام وكيل معتمد خاص أو تعطيل التخزين المؤقت.

هناك أيضًا مستندات لتكوين تسجيل الدخول الأحادي (SSO)، والذي يبدو أنه تسبب في مشاكل مماثلة لتلك التي نواجهها في الماضي:

لا يزال لا يوجد ذكر لتكوين التخزين المؤقت أو حلول الوكيل العكسي “المخصصة”.

على الأقل، أقترح تحديث الوثائق لتسليط الضوء على هذه المشكلات المحتملة، نظرًا لكونها واضحة جدًا لخبراء Discourse.

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

سأكون قلقًا جدًا بشأن تكوين التخزين المؤقت هذا. لا أفهم تمامًا وثائق nginx الخاصة بـ proxy_ignore_headers، ولكن بشكل افتراضي، لن يقوم nginx بتخزين الاستجابات التي تتضمن رأس Set-Cookie. يبدو أن هذا التكوين يغير هذا السلوك بحيث قد يتم تخزين الاستجابات التي تتضمن رأس Set-Cookie مؤقتًا. إذا تم تخزينها مؤقتًا مع رأس Set-Cookie ثم تم تقديمها لمستخدم مختلف، فقد يتسبب ذلك في قيام شخص ما بتبديل حسابات المستخدمين.

من الناحية النظرية، يجب أن ينطبق هذا التكوين فقط على الملفات الوسائط، ولكن مطابقة الجزء الأخير من عنوان URL (بما في ذلك معلمات الاستعلام؟) يبدو طريقة غير آمنة إلى حد ما للقيام بذلك.

إعجابَين (2)

لقد توقفت عن استخدامه. بما أن الآخرين أشاروا إلى أن الأمر يبدو فكرة سيئة بشكل عام. أشكر الشرح. لم أرى شيئًا خطأ على الفور فيما كان يفعله لكنني بالتأكيد لست خبيرًا في الموضوع.

قد يحتوي كتلة موقع التخزين المؤقت على بعض التداخل مع المسارات التي توصل الكوكيز، لنحاول تعطيلها.

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

أشك في أن هذا صحيح استنادًا إلى الشرح الذي قدمه @simonk.

أقدر مساعدة الجميع.

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