خطأ CSP عند استخدام مكتبة طرف ثالث في إضافة

بعد العديد من المحاولات والمقاربات المختلفة، تمكنت من تحميل مكتبة طرف ثالث بنجاح لاستخدامها في المكون الإضافي الخاص بي.
تقع المكتبة تحت public/javascripts/some-library.js.
في وحدة التحكم الخاصة بي، يمكنني تحميل البرنامج النصي بنجاح عبر:

loadScript("/plugins/my-plugin/javascripts/some-library.js")

في بعض الأحيان في هذا الملف، تنشئ المكتبة كائنات Blob وتعينها للمتغيرات التي يتم استخدامها. على سبيل المثال:

var A=URL.createObjectURL(new Blob(['\n\tsome code snippet...'],{type:"application/javascript"}))

وفي كل مرة أحاول فيها استخدام المكتبة في كود المكون الإضافي الخاص بي، أحصل على:
Refused to load the script 'blob:http://localhost:4200/f33a6788-a853-4286-883a-48cb8e2c9cc1' because it violates the following Content Security Policy directive: "script-src http://localhost:4200/assets/ etc etc...
ما هي أفضل طريقة للتحايل على هذا؟
شكراً جزيلاً على أي مساعدة أو توجيهات!

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

ماذا لو أضفت http://localhost:4200 إلى CSP؟

لقد جربت ذلك بالفعل، ولم يغير شيئًا :confused:

ماذا عن blob:http://localhost:4200؟

جربت ذلك أيضًا، ولكنه تصريح غير صالح لـ CSP :confused:

لأي شخص يصادف هذا، السطر الصحيح لإضافته إلى blob: مصدر نص CSP هو blob:

انتظر! لست بحاجة إلى تطبيق CSP في بيئة التطوير، فأنت لست معرضًا للخطر من المهاجمين؟

سيؤدي ذلك أيضًا إلى حظر بعض أدوات المطورين المحتملة.

فقط قم بإيقاف تشغيل هذا الإعداد:

بسيط.

أود تأجيل هذا الصداع حتى يكون لديك مكون إضافي يعمل ويتم اختباره على خادم إنتاج تجريبي.

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

نعم ولكن يجب عليك العمل على تكوين CSP على خادم الإنتاج التجريبي الذي يحتوي على عنوان إنترنت حقيقي.
المضيف المحلي ليس عنوان إنترنت! :slight_smile::wink: إنه ليس https حتى …

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