عند تثبيت سكريبت HTML تواجه مشكلة؟

أواجه مشكلة في تثبيت سكريبت 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 مع ضمان عمل السكريبت أيضًا؟

أضف مصدر السكريبت الخاص بك إلى إعداد content security policy script src.

لقد أضفت روابط الأخطاء تلك عندما رأيتها في تبويب وحدة التحكم :slight_smile:

لكنها لا تزال لا تعمل بشكل صحيح

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

ربما يحتاج النص إلى تحسين هنا @tshenry؟

شكرًا على المساعدة، سأحاول التعديل مرة أخرى.

لكن لا تزال المشكلة قائمة، حيث لا يظهر سكريبت PureChat عند تفعيل سياسة محتوى الأمان (CSP)، رغم أنني أضفت رابطين جديدين.

إفصاح كامل - لا أعتبر نفسي خبيرًا في CSP!

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

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

لقد جربت للتو إضافة Pure Chat إلى موقعي التجريبي ك experiment. تمكنت من جعلها تعمل على Chrome باستخدام التجزئة (hash)، لكنها لم تكن كافية لـ Safari و Firefox. ناقشت الأمر مع Penar ويبدو أن هذه واحدة من تلك المواقف غير السارة التي ستستلزم 'unsafe-inline' كما هو موضح في:


@BishopV أعتقد أن خيارك الوحيد إذا اخترت البقاء مع Pure Chat هو إزالة جميع الإدخالات الموجودة في هذا الإعداد وإضافة 'unsafe-inline' على حساب الأمان.

هل فكرت في استخدام Setup HubSpot chat Integration بدلاً من ذلك؟ يبدو أن هذا يعمل بشكل ممتاز مع سياسة CSP الخاصة بنا.

بغض النظر، فإن أسوأ نتيجة ممكنة هي أن يقوم شخص ما بتشفير 20 عنوان URL فريد من نفس النطاق بشكل ثابت…

شكرًا على المساعدة، أعتقد أن HubSpot هو الحل المناسب لي الآن. أنا سعيد باختيار Discourse كخلفية لي، حيث توفر هنا الكثير من المساعدة والدعم.