مشكلة مع Strict Dynamic وسياسة أمان المحتوى (CSP) في ودجت Atlassian
أواجه مشكلة مع سياسة أمان المحتوى (CSP) بعد التحديث إلى الإصدار v3.3.0.beta1. على وجه التحديد، أحاول تضمين ودجت Atlassian في رأس الحاوية الخاصة بي، والتي تم إنشاؤها قبل هذا التحديث.
لقد تأكدت من تضمين الـ nonce، لكنني أواجه الأخطاء التالية:
embed.js:1 Refused to set the document's base URI to 'https://jsd-widget.atlassian.com/' because it violates the following Content Security Policy directive: "base-uri 'self'".
embed.js:1 Refused to load the script 'https://jsd-widget.atlassian.com/assets/iframe.js' because it violates the following Content Security Policy directive: "script-src 'nonce-YAnMdLzmoWqLis3WXiQKjxdHk' 'strict-dynamic'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
بالإضافة إلى ذلك، صادفت اقتراحًا في منشور سابق لتحميل البرنامج النصي ديناميكيًا على هذا النحو:
var s = document.createElement('script');
s.src = "https://jsd-widget.atlassian.com/assets/embed.js";
document.body.appendChild(s);
ومع ذلك، لا يبدو أن هذا يحل المشكلة. من الواضح أنني أفتقد شيئًا ما حول كيفية عمل strict-dynamic في هذا السياق.
هل يمكن لأحد مساعدتي في فهم سبب حدوث هذه الأخطاء وكيف يمكنني حلها؟ أي توجيه سيكون موضع تقدير!
من المثير للاهتمام أنني كنت أبحث للتو في مشكلة مطابقة تقريبًا.
يمكنني تكرار مشكلة مماثلة في أحدث إصدار تم إعادة بنائه مؤخرًا.
أحصل على:
[Report Only] Refused to load the script 'https://www.mytestsite.com/mini-profiler-resources/includes.js?v=116e2a6fd81c286e004e2a0afb03baa1' because it violates the following Content Security Policy directive: "script-src 'nonce-ZSPIEwDBo6e07GuQMDkOFZerD' 'strict-dynamic'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
مرحباً ديفيد، شكراً جزيلاً لك.
على الاستجابة السريعة.
الكود الذي أضيفه هو <script data-jsd-embedded data-key="bla" data-base-url="https://jsd-widget.atlassian.com" src="https://jsd-widget.atlassian.com/assets/embed.js"></script>
يبدو أن البرنامج النصي embed.js يعمل بنجاح، لذا فإن جانب Discourse يعمل.\n\nومع ذلك، فإنه يحاول بعد ذلك إنشاء إطار iframe بنفس المصدر، والذي يتضمن علامات البرنامج النصي ‘parser-inserted’. هذه الاستراتيجية غير متوافقة مع CSP صارم وديناميكي.\n\nلذلك أعتقد أن هذا شيء ستحتاج Atlassian إلى إصلاحه. لقد صادفت هذه المشكلة على متتبعهم والتي تبدو ذات صلة (على الرغم من أنها لا تحتوي على الكثير من التفاصيل، أو حل )