التقليل من هجمات XSS باستخدام سياسة أمان المحتوى

As promised, this feature was just enabled by default: CSP Frame Ancestors enabled by default

10 إعجابات

مرحباً،
أقوم حاليًا بإعداد Google AdSense على موقعي الإلكتروني ويبدو أنني أفتقد إعداد “تمكين جمع تقارير انتهاك CSP على /csp_reports”. أنا حاليًا أستضيف Discourse بنفسي على الإصدار 2.9.0.beta6

أعلاه، في الاقتباس، لقطة شاشة للإعداد الذي أفتقده


أعلاه، صفحة الإعداد الخاصة بي لـ CSP مع فقدان “تمكين جمع تقارير انتهاك CSP على /csp_reports”.

أي مساعدة ستكون موضع تقدير! ويرجى إخباري إذا قمت بإعداد الإعدادات التي لدي بشكل صحيح لـ AdSense، لم أستخدمه من قبل :eyes: !

3 إعجابات

عذرًا، ردودي السابقة هنا قديمة لأننا منذ حوالي شهر جعلنا content_security_policy_collect_reports إعدادًا مخفيًا. لا يزال بإمكانك تمكينه ولكن عليك القيام بذلك عبر وحدة تحكم Rails، كما في:

./launcher enter app
...
rails c
...
SiteSetting.content_security_policy_collect_reports = true

لاحظ أن هذا مزعج للغاية، وأوصي بشدة بعدم اتباع هذا المسار على الإطلاق وببساطة تمكين CSP والتنقل في الموقع مع فتح وحدة تحكم المتصفح باستخدام متصفحات متعددة (Chrome و Firefox و Safari). ستجد معظم المشكلات بهذه الطريقة. ومع التكوين الذي لديك، فإنك تسمح فعليًا بكل ما تحميه CSP تقريبًا، لذلك لا ينبغي أن تحتاج إلى التقارير.

6 إعجابات

ربما فاتني شيء ما، لكنني لا أرى هذه الإعدادات في واجهة المستخدم للإعدادات.

  • content_security_policy
  • content_security_policy_report_only
  • content_security_policy_collect_reports (أرى أنها مخفية الآن)
  • content_security_policy_script_src

هل هذه الخيارات متاحة للمثيلات المستضافة؟ لم أر أي ذكر لقيود على ذلك في المنشور الأصلي أو التعليقات.

تعديل: حاولت أيضًا تعيين سياسة الأمان من خلال سمة.

لا يبدو أنها تعمل كما هو موضح في المنشور الأصلي.

أفترض أن الخطة المستضافة التي أستخدمها لا تسمح بذلك، حتى عند القيام بذلك عبر سمة أو مكون سمة؟

أو ربما أنا فقط أفعل شيئًا خاطئًا تمامًا.

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

حاليًا، يوفر Discourse سياسة CSP المستوى 2 مع التوجيهات التالية افتراضيًا:

  • base-uri يقيّد عناوين URL لعنصر <base>

هل هناك أي خيار لتجاوز القيمة الافتراضية لرأس base-uri؟

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

أين تُستخدم عناصر <base> فعليًا في الخطاب؟

هل من شأن ذلك أن يكسر إشعارات الدفع الخاصة بـ Discourse؟

قد يكون كذلك. قد تحتاج إلى بيئة أكثر ملاءمة.

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

تم تقسيم مشاركة إلى موضوع جديد: ما هي الطريقة المقترحة لاستخدام الصور الآمنة؟

مرحباً،
هل يمكنني معرفة كيفية تجاوز المشكلة أدناه؟ لقد أضفت النص البرمجي الذي يستدعي تعبير Function() جديدًا إلى content_security_policy_script_src، لكن وحدة تحكم المتصفح الخاصة بي لا تزال تشتكي من الخطأ أدناه. أين يمكنني استبعاد unsafe-eval؟ شكرًا!

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:

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

اعتذار. يرجى تجاهل مشاركتي السابقة إذا كانت ملاحظاتي أدناه صحيحة. فقط اعلم من خلال المشاركات أعلاه أنه يمكنني تعيين ‘unsafe-eval’ مباشرة إلى content_security_policy_script_src، ولا يوجد خطأ في جافاسكريبت تم الإبلاغ عنه في وحدة التحكم بعد الآن.

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

ربما ألق نظرة على إعداد موقع content security policy script src؟

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

نعم. كما ورد في الردود السابقة، يمكن إضافة ‘unsafe-eval’ مباشرة إلى content_security_policy_script_src، اعتقدت أن عناوين URL الأساسية أو عناوين URL الكاملة فقط هي المسموح بإضافتها.

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