كيفية إصلاح مشكلة مع CSP

مرحباً! لدي مشكلة مع CSP، كيف يمكنني إصلاح هذا؟

screen

Refused to execute inline script because it violates the following Content Security Policy directive: "script-src https://mydomain.com/logs/ https://mydomain.com/sidekiq/ https://mydomain.com/mini-profiler-resources/ https://mydomain.com/assets/ https://mydomain.com/brotli_asset/ https://mydomain.com/extra-locales/ https://mydomain.com/highlight-js/ https://mydomain.com/javascripts/ https://mydomain.com/plugins/ https://mydomain.com/theme-javascripts/ https://mydomain.com/svg-sprite/ https://mydomain.com". Either the 'unsafe-inline' keyword, a hash ('sha256-ScCk7JwXKy22dTO0VFM7aV1chV+yd/MUda4X6VnGans='), or a nonce ('nonce-...') is required to enable inline execution.

للتجربة، دخلت في safe mode، وفي الوضع الآمن توجد نفس المشكلة.

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

ليس من اختصاصي، ولكني أجريت بحثًا وقد تحتاج إلى إعادة كتابة البرنامج النصي المضمن الذي تحاول استخدامه:

إعجابَين (2)

لا أريد تعطيل حماية CSP ولا أملك نصوصًا خارجية، لقد حاولت تعطيل جميع الإضافات ومكونات الموضوع، لم يساعد ذلك.

حاولت إضافة كل هذه الروابط إلى content security policy script src في إعدادات المسؤول، المشكلة تم حلها :frowning:
https://mydomain.com/logs/ https://mydomain.com/sidekiq/ https://mydomain.com/mini-profiler-resources/ https://mydomain.com/assets/ https://mydomain.com/brotli_asset/ https://mydomain.com/extra-locales/ https://mydomain.com/highlight-js/ https://mydomain.com/javascripts/ https://mydomain.com/plugins/ https://mydomain.com/theme-javascripts/ https://mydomain.com/svg-sprite/ https://mydomain.com`

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

تحتاج إلى مشاركة عنوان URL الخاص بموقعك حتى نتمكن من مساعدتك.

3 إعجابات

هل يمكنني إرسالها إلى صندوق الرسائل الخاص بك؟

هممم…
يبدو أنني وجدت السبب، يبدو أن المشكلة تحدث لأنني أستخدم علامة meta CSP في القالب الخاص بي:

<html><meta http-equiv="Content-Security-Policy" content="img-src https://imgur.com https://giphy.com"></html>

أحتاج إلى استخدام التوجيه img-src لتقييد عرض الصور من المضيفين المحظورين.

إن توجيه CSP هذا سيعطل Discourse تمامًا بالتأكيد.

إعجابَين (2)

كيف يمكنني تغيير توجيهات CSP الافتراضية في الرأس، لإضافة img-src دون استخدام علامة meta؟ لقد حاولت ذلك في Rails، ولكن لم يتغير شيء:

Rails.application.config.action_dispatch.default_headers.merge!({'Content-Security-Policy' => "upgrade-insecure-requests; base-uri 'self'; object-src 'none'; script-src https://mydomain.com/logs/ https://mydomain.com/sidekiq/ https://mydomain.com/mini-profiler-resources/ https://mydomain.com/assets/ https://mydomain.com/brotli_asset/ https://mydomain.com/extra-locales/ https://mydomain.com/highlight-js/ https://mydomain.com/javascripts/ https://mydomain.com/plugins/ https://mydomain.com/theme-javascripts/ https://mydomain.com/svg-sprite/; worker-src 'self' https://mydomain.com/assets/ https://mydomain.com/brotli_asset/ https://mydomain.com/javascripts/ https://mydomain.com/plugins/; frame-ancestors 'self'; manifest-src 'self'; img-src data: https://mydomain.com https://imgur.com"})

لقد قمت بحذف علامة الميتا هذه، وأعدت البناء، وتم حفظ المشكلة :frowning: