أقوم بتشغيل نسخة مستضافة ذاتيًا من Discourse على forum.embeetle.com. لقد كانت تعمل بشكل جيد لعدة سنوات الآن.
هذا الصباح، لاحظت أن جميع تفاعلات لوحة المفاتيح والفأرة مع المنتدى في المتصفح توقفت عن العمل. يمكنني تحميل أي صفحة من المنتدى، ولكن لا يمكنني التمرير أو تسجيل الدخول أو البحث، …
لقد جربت كلًا من Firefox و Chromium: نفس المشكلة.
تُظهر أدوات مطوري Firefox هذا الخطأ:
Content-Security-Policy: The page’s settings blocked the loading of a resource at inline (“script-src”). forum.embeetle.com:362:10
لم أقم مؤخرًا بأي تحديثات أو تثبيت أي إضافات جديدة.
أي اقتراحات حول كيفية تصحيح هذه المشكلة وإصلاحها؟
على حد علمي، لدي تثبيت قياسي يعتمد على docker، باستثناء أنني أقوم بتشغيله خلف وكيل عكسي Nginx. تكوين Nginx أدناه (لست متأكدًا مما إذا كان ذا صلة):
لا أتذكر أنني قمت بتعيين سمة بشكل افتراضي، ولكن ربما فعلت ذلك ونسيت.
أود تعطيل السمات مؤقتًا بشكل افتراضي، حتى يكون منتدانا قابلاً للاستخدام أثناء اكتشاف ما هو الخطأ في السمات. كيف يمكنني القيام بذلك، إذا كان بإمكاني الوصول فقط إلى صفحات المسؤول مع تعطيل السمات؟ في الوضع الآمن، تم تعطيل جميع السمات بالفعل، ويبدو أن تمكينها ثم تعطيلها مرة أخرى لا يؤثر.
هناك ثلاث سمات متاحة (انظر أدناه). لا توجد سمة ممكّنة افتراضيًا.
مجرد تخمين: إذا استمرت المشكلة بعد ذلك، فقد تكون بيئة الخادم لديك ترسل شيئًا غير متوقع. أو نص برمجي آخر يتداخل (هل تقوم بتشغيل أي إضافات مخصصة أو نصوص برمجية أخرى؟)
لاحظ أن هذا سيتركك في حالة ضعيفة ويجب معالجته في أسرع وقت ممكن. ولكن على الأقل يعمل منتدى الخاص بك مرة أخرى.
لقد طبقت حلاً بديلاً مختلفًا في الوقت الحالي، عن طريق إضافة إعادة كتابة في إعدادات nginx (على مستوى الخادم) على النحو التالي:
rewrite ^(.*)$ $1?safe_mode=no_themes break;
لذا سيستخدم الزوار الوضع الآمن افتراضيًا الآن.
للسماح بمزيد من الاستكشاف لهذه المشكلة، قمت أيضًا بنسخ خادم المنتدى بدون rewrite على https://raw.forum.embeetle.com. إذا قمت بزيارة هذا الرابط، فسترى المشكلة الأصلية.
أنا لا أستخدم أي نصوص برمجية مخصصة. أنا أستخدم بعض الإضافات، وسأجرب ما إذا كان تعطيل أي منها سيكون له أي تأثير.