أواجه مشكلة في تثبيت سكريبت Pure Chat في منتداي، لأن Discourse يفعّل فلتر القائمة البيضاء لأغراض الحماية الأمنية. لقد حاولت إضافة بعض روابط Pure Chat إلى القائمة البيضاء، لكن علامة تبويب محادثة Pure Chat لا تظهر بعد. يرجى المساعدة. إليك رسالة الخطأ:
legacy.111147.js:1 Uncaught EvalError: Refused to evaluate a string as JavaScript because ‘unsafe-eval’ is not an allowed source of script in the following Content Security Policy directive:
at new Function (<anonymous>)
at Function.b.template (legacy.111147.js:1)
at Module.<anonymous> (legacy.111147.js:32)
at n (legacy.111147.js:1)
at Object.<anonymous> (legacy.111147.js:32)
at n (legacy.111147.js:1)
at legacy.111147.js:1
at legacy.111147.js:1
هل يعرف أحد كيفية حل هذه المشكلة؟ إذا قمت بتعطيل سياسة CSP، فإن السكريبت سيعمل بشكل صحيح. لكن كيف يمكنني تفعيل CSP مع ضمان عمل السكريبت أيضًا؟
مع ذلك، أعتقد أنه توجد حالات يكون فيها من المثالي إدراج النطاق في القائمة البيضاء، وحالات أخرى يكون فيها استهداف السكربتات الفردية أفضل. أنا متأكد تقريبًا من أن الأمر يعتمد على عدد السكربتات التي تحتاج إلى إدراجها في القائمة البيضاء، وما إذا كنت تثق بالمصدر، وما إلى ذلك. سأضيف ملاحظة إلى الدليل تذكر أنه يمكن استخدام النطاق كغطاء شامل إذا لزم الأمر.
الإعدادات في لقطات الشاشة المقدمة كانت بالتأكيد مبالغًا فيها بعض الشيء، لكنني أتخيل أن ذلك كان مجرد محاولة لتغطية كل شيء نظرًا لأن لا شيء كان يعمل.
لقد جربت للتو إضافة Pure Chat إلى موقعي التجريبي ك experiment. تمكنت من جعلها تعمل على Chrome باستخدام التجزئة (hash)، لكنها لم تكن كافية لـ Safari و Firefox. ناقشت الأمر مع Penar ويبدو أن هذه واحدة من تلك المواقف غير السارة التي ستستلزم 'unsafe-inline' كما هو موضح في:
@BishopV أعتقد أن خيارك الوحيد إذا اخترت البقاء مع Pure Chat هو إزالة جميع الإدخالات الموجودة في هذا الإعداد وإضافة 'unsafe-inline' على حساب الأمان.