يجب إضافة عنوان URL الخاص بـ CDN إلى مصدر نص سكربت CSP

لقد قمت بتكوين موقع باستخدام متغيرات البيئة (ENV) على النحو التالي:


  DISCOURSE_FORCE_HTTPS: true
  DISCOURSE_S3_ACCESS_KEY_ID: 'KEY'
  DISCOURSE_S3_SECRET_ACCESS_KEY: 'SECRET'
  DISCOURSE_BACKUP_LOCATION: 's3'
  DISCOURSE_ENABLE_S3_UPLOADS: true
  DISCOURSE_ENABLE_S3_INVENTORY: false
  DISCOURSE_S3_BACKUP_BUCKET: 'mybucket/backups'
  DISCOURSE_S3_UPLOAD_BUCKET: 'mybucket'
  DISCOURSE_S3_CDN_URL: 'https://mybuckets3.cdn.literatehosting.com'
  DISCOURSE_S3_REGION: 'us-west-1'
  DISCOURSE_BACKUP_WITH_UPLOADS: 'false'
  DISCOURSE_CDN_URL: 'https://mybucket.cdn.literatehosting.com'

كان يعمل بشكل صحيح حتى أضفت s3 cdn url. بعد إضافة عنوان CDN الخاص بـ S3، بدأ المتصفح في رفض الطلبات الموجهة إلى CDN العادي (غير S3). أضفت عنوان CDN إلى SiteSetting.content_security_policy_script_src= وعاد كل شيء للعمل مرة أخرى. يبدو أن هذا خطأ، أليس كذلك؟ لقد قمت بإعادة التشغيل فقط بعد تغيير متغيرات البيئة هذه، وليس إعادة البناء. هل أحتاج إلى تنفيذ rake assets:precompile عند تغيير إعدادات CDN؟

حسناً، يجب أن يعمل هذا بشكل صحيح. من المفترض أن تقوم سياسة أمان المحتوى (CSP) بإدراج المجلدات المحددة على S3 في القائمة البيضاء واستدعاء شبكات توصيل المحتوى (CDNs) التي تأتي منها السكربتات.

ما هي سياسة أمان المحتوى (CSP) التي أرسلها/يُرسلها Discourse مع الصفحة؟ هل هذا تثبيت في مجلد فرعي؟

أعتقد أنني أفهم ذلك. هل يوجد هذا CSP في الأصول الثابتة التي ينشئها أمر rake assets:precompile؟ (ولكن لماذا سيؤدي إضافته إلى الإعدادات إلى إصلاح المشكلة؟)

أخشى أنني لا أعرف الطريقة القياسية للحصول على إجابة لهذا السؤال.

ليس مجلدًا فرعيًا. تثبيت قياسي إلى حد ما، على الرغم من أن traefik يعمل كوكيل عكسي أمامه.

curl -I https://discourse.example.com/ أو أداة الفحص في Chrome، ثم احصل على محتوى رأس Content-Security-Policy.